在 Windows Phone 8 上,我有一个列表框,每个 ListboxItem 的 DataTemplate 都包含文本框(以及复选框等)
现在,当用户单击 TextBox(复选框等)时,它会获得焦点,但 Listbox 的 SelectedItem 属性不会改变。我需要知道用户当前正在编辑列表中的哪个项目,并且我使用 MVVM 模式,所以我绑定了 SelectedItem。
对于 WPF,我在这里找到了几种方法,但它们都不适用于 WP8,主要是因为 WP8 上没有触发器。
谢谢你的帮助
在 Windows Phone 8 上,我有一个列表框,每个 ListboxItem 的 DataTemplate 都包含文本框(以及复选框等)
现在,当用户单击 TextBox(复选框等)时,它会获得焦点,但 Listbox 的 SelectedItem 属性不会改变。我需要知道用户当前正在编辑列表中的哪个项目,并且我使用 MVVM 模式,所以我绑定了 SelectedItem。
对于 WPF,我在这里找到了几种方法,但它们都不适用于 WP8,主要是因为 WP8 上没有触发器。
谢谢你的帮助
使用 TextBox 的 GotFocus 事件获取 ListBoxItem。
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
ListBoxItem itemSelected = sender as ListBoxItem;
listBox.SelectedItem = itemSelected;
// You can also get underlying data context of MVVM by
// MyDataContextClass selected = itemSelected.DataContext as MyDataContextClass;
// where MyDataContextClass is the class with which you are binding ListBoxItem
}