我正在尝试使用我的AutocompleteBox中的建议点击导航,但它不能与InvokeCommandAction一起使用,我正在尝试在命令中导航,这是我的代码:
<toolkit:AutoCompleteBox ItemsSource="{Binding A}" ValueMemberBinding="{Binding B}" Style="{StaticResource SearchStyle}">
<toolkit:AutoCompleteBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Tap">
<i:InvokeCommandAction Command="{Binding Test, Mode=OneWay, Source={StaticResource Main}}" CommandParameter="{Binding Mode=OneWay}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<TextBlock Text="{Binding B}"/>
</StackPanel>
</DataTemplate>
</toolkit:AutoCompleteBox.ItemTemplate>
</toolkit:AutoCompleteBox>
答案 0 :(得分:0)
尝试这样的事情:
<toolkit:AutoCompleteBox Name="XPTO">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Tap">
<i:InvokeCommandAction Command="{Binding Test, Mode=OneTime}" CommandParameter="{Binding ElementName=XPTO, Path=SelectedItem}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</toolkit:AutoCompleteBox>
您可以将autocompletebox SelectedItem作为参数发送。在您的ViewModel中,您只需拥有
public RelayCommand<TYPEOFSELECTEDITEM> Test{ get; private set; }
在ViewModel的构造函数中,例如:
this.Test= new RelayCommand<TYPEOFSELECTEDITEM>(()=>MessageBox.Show("Hello world"));
如果您没有使用ViewModel,那么这将转到您设置DataContext的位置。 如果你正在使用ViewModel,你不应该在那里调用MessageBox.Show ......但这是另一个故事。
此致