我正在开发我的第一个WP7应用程序,这个问题让我有些头痛。
我有一个像这样定义的ListBox
<ListBox Grid.Row="1" ItemsSource="{Binding MyItemList}" SelectedItem="{Binding MySelectedItem}">
<ListBox.ItemTemplate>
<DataTemplate >
<StackPanel>
<TextBlock Text="{Binding Name}" FontSize="35" />
<TextBlock Text="{Binding Details}" FontSize="15"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
绑定ItemsSource工作正常,但选择项目时MySelectedItem-Property不会更新。这个功能没有实现(比如在WPF中)或我只是在做什么? : - )
答案 0 :(得分:6)
只需使用 -
SelectedItem="{Binding MySelectedItem, Mode=TwoWay}"
它应该没问题。
答案 1 :(得分:0)
您可能必须为ListBox设置IsSynchronizedWithCurrentItem="True"
。
答案 2 :(得分:0)
这是我的解决方法..我希望有人会发布一个更优雅的解决方案。
XAML:
<ListBox Name="DecksListBox" ItemsSource="{Binding MyItemsList}"
SelectionChanged="UpdateSelectedItem"
代码隐藏:
private void UpdateSelectedItem(object sender, SelectionChangedEventArgs e)
{
// Ignore if there is no selection
if (DecksListBox.SelectedIndex == -1)
return;
App.ViewModel.MySelectedItem = App.ViewModel.MyItemsList[DecksListBox.SelectedIndex];
}
也许这可能在此期间帮助某人。