AutoSuggestBox.SelectedItem 不工作
AutoSuggestBox.SelectedItem is not working
对于 AutoSuggestBox 所选项目在 _SuggestionChosen 事件中启用,但在 "getitemselected()" 方法中所选项目在 WP8.1 中不起作用。
在 XAML 文件中:
<AutoSuggestBox x:Name="tblkpersonname" Width="380" Margin="0,-7,0,0" ItemsSource="{Binding}" SuggestionChosen="tblkpersonname_SuggestionChosen">
<AutoSuggestBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"
Tag="{Binding PersonID}"/>
</DataTemplate>
</AutoSuggestBox.ItemTemplate>
</AutoSuggestBox>
在 Cs 文件中:
private void tblkpersonname_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
{
System.Diagnostics.Debug.WriteLine("Suggestion chosen : {0}", ((values)args.SelectedItem).Name);
}
public void getitemselected()
{
//Error in this line when select item from AutoSuggestBox
//Here values is the one of the class
if (((values)tblkpersonname.SelectedItem) != null)
{
//Some Statements
}
}
AutoSuggestBox 没有 属性 SelectedItem - 你可以阅读 Text 属性 如果你想。
但是,如果您想知道从建议中选择了哪个元素,您可以从事件 SuggestionChosen 中的参数中读取它,您已经在做什么。你只需要将它传递给你的方法。例如像这样:
private void tblkpersonname_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
{
System.Diagnostics.Debug.WriteLine("Suggestion chosen : {0}", ((values)args.SelectedItem).Name);
getitemselected(args.SelectedItem as values);
}
public void getitemselected(values selectedItem)
{
if ((selectedItem) != null)
{
//Some Statements
}
}
编辑 - 在 OP 的编辑和评论之后
您还可以将所选项目保存在变量中:
values selectedItem = null;
private void tblkpersonname_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
{
System.Diagnostics.Debug.WriteLine("Suggestion chosen : {0}", ((values)args.SelectedItem).Name);
selectedItem = args.SelectedItem as values;
}
然后你就可以在任何地方使用它了。
对于 AutoSuggestBox 所选项目在 _SuggestionChosen 事件中启用,但在 "getitemselected()" 方法中所选项目在 WP8.1 中不起作用。
在 XAML 文件中:
<AutoSuggestBox x:Name="tblkpersonname" Width="380" Margin="0,-7,0,0" ItemsSource="{Binding}" SuggestionChosen="tblkpersonname_SuggestionChosen">
<AutoSuggestBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"
Tag="{Binding PersonID}"/>
</DataTemplate>
</AutoSuggestBox.ItemTemplate>
</AutoSuggestBox>
在 Cs 文件中:
private void tblkpersonname_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
{
System.Diagnostics.Debug.WriteLine("Suggestion chosen : {0}", ((values)args.SelectedItem).Name);
}
public void getitemselected()
{
//Error in this line when select item from AutoSuggestBox
//Here values is the one of the class
if (((values)tblkpersonname.SelectedItem) != null)
{
//Some Statements
}
}
AutoSuggestBox 没有 属性 SelectedItem - 你可以阅读 Text 属性 如果你想。
但是,如果您想知道从建议中选择了哪个元素,您可以从事件 SuggestionChosen 中的参数中读取它,您已经在做什么。你只需要将它传递给你的方法。例如像这样:
private void tblkpersonname_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
{
System.Diagnostics.Debug.WriteLine("Suggestion chosen : {0}", ((values)args.SelectedItem).Name);
getitemselected(args.SelectedItem as values);
}
public void getitemselected(values selectedItem)
{
if ((selectedItem) != null)
{
//Some Statements
}
}
编辑 - 在 OP 的编辑和评论之后
您还可以将所选项目保存在变量中:
values selectedItem = null;
private void tblkpersonname_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
{
System.Diagnostics.Debug.WriteLine("Suggestion chosen : {0}", ((values)args.SelectedItem).Name);
selectedItem = args.SelectedItem as values;
}
然后你就可以在任何地方使用它了。