Ответ 1
В новых приложениях для Windows 8.1 есть новый SDK Behavior SDK для добавления поведения в приложение. он не добавляется по умолчанию, вам нужно добавить это расширение в свой проект. ниже описано, как добавить это расширение в свой проект.
установите SDK Behavior из списка.
Теперь на странице XAML добавьте следующие пространства имен в InvokeActionCommand, способные вызывать ICommand в ViewModel
xmlns:i="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
DataContext="{Binding AutoSuggestionBoxExample, Mode=OneWay, Source={StaticResource Locator}}"
...
вот код кода XAML для вызова команды на событие textchange в автозаполнении.
<AutoSuggestBox Text="{Binding SearchText,Mode=TwoWay}" ItemsSource="{Binding
Suggesstions}">
<AutoSuggestBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</AutoSuggestBox.ItemTemplate>
<i:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="TextChanged">
<core:InvokeCommandAction Command="{Binding SearchChanged}">
</core:InvokeCommandAction>
</core:EventTriggerBehavior>
</i:Interaction.Behaviors>
</AutoSuggestBox>
Ниже приведена моя RelayCommand в ViewModel
private RelayCommand _searchChanged;
/// <summary>
/// Gets the SearchChanged.
/// </summary>
public RelayCommand SearchChanged
{
get
{
return _searchChanged
?? (_searchChanged = new RelayCommand(
() =>
{
IList<string> sugg = new List<string>();
for (int i = 0; i < 25; i++)
{
sugg.Add(SearchText + " 1" + i);
sugg.Add(SearchText + " 2" + i);
}
Suggesstions = sugg;
}));
}
}
Надеемся, что это поможет подробнее узнать следующую ссылку. Windows 8.1 Поведение SDK: использование InvokeAction