如何将视图模型属性绑定到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绑定?谢谢你的帮助。
答案 0 :(得分:47)
嗯,它就像生命一样重要。在XAML中。我绑定到视图模型属性“Selectedtem”。不幸的是,实际名称是“SelectedItem”。所以这段代码实际上是有效的 - 我在今天下午早些时候解决了这个问题,然后在下午剩下的时间和整个晚上搜索网页,然后才注意到拼写错误。
我的妻子今天下午3点告诉我,“你知道,事情会变得很小。”它确实如此 - 一封丢失的字母“我”。好吧,至少我现在可以去睡觉了。