【发布时间】:2010-11-25 22:38:10
【问题描述】:
如何将视图模型属性绑定到 ListBox.SelectedItem 属性?
我创建了一个简单的 MVVM 演示来尝试解决这个问题。我的视图模型具有以下属性:
private ObservableCollection<DisneyCharacter> p_DisneyCharacters;
public ObservableCollection<DisneyCharacter> DisneyCharacters
{
get { return p_DisneyCharacters; }
set
{
p_DisneyCharacters = value;
base.FirePropertyChangedEvent("DisneyCharacters");
}
}
private DisneyCharacter p_SelectedItem;
public DisneyCharacter SelectedItem
{
get { return p_SelectedItem; }
set
{
p_SelectedItem = value;
base.FirePropertyChangedEvent("SelectedItem");
}
}
我想将 SelectedItem 属性绑定到列表框中选定的项目。这是列表框的 XAML:
<ListBox ItemTemplate="{StaticResource MasterTemplate}"
ItemsSource="{Binding Path=DisneyCharacters}"
SelectedItem="{Binding Path=Selectedtem, Mode=TwoWay}"
HorizontalAlignment="Stretch" />
这是我的问题:当我更改列表框中的选择时,视图模型 SelectedItem 属性未更新。
我做了一个测试,我用 SelectedIndex 属性临时替换了视图模型的 SelectedItem 属性,并将它绑定到 ListBox.SelectedIndex 属性。该属性更新得很好——只是我无法使用的 SelectedItem 属性。
那么,如何修复 SelectedItem 绑定?感谢您的帮助。
【问题讨论】:
-
如何在 MVVM 中使用列表框的一个很好的例子。谢谢
标签: wpf data-binding mvvm