建议点击上的AutocompleteBox导航

时间:2014-09-04 09:38:03

标签: c# xaml windows-phone-8

我正在尝试使用我的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>

1 个答案:

答案 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 ......但这是另一个故事。

此致