MVVM:绑定到ListBox.SelectedItem?(MVVM: Binding to Lis

2019-07-05 00:58发布

如何绑定视图模型属性的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绑定? 谢谢你的帮助。

Answer 1:

那么,它就在那里,大如生命。 在XAML。 我绑定到视图模型属性“Selectedtem”。 不幸的是,实际的名字是“的SelectedItem”。 所以这个代码实际工作 - 我解决了这个问题早在今天下午,然后花了一个下午的休息和晚上都网上淘,我才发现拼写错误。

我的妻子今天下午告诉我在3:00,“你知道,它会变成是小的东西。” 所以它确实 - 缺失的字母“I”。 好吧,至少我可以去睡觉了。



文章来源: MVVM: Binding to ListBox.SelectedItem?