WPF列表框绑定 - SelectedItem保持为空

时间:2015-01-13 02:27:11

标签: c# wpf mvvm data-binding listbox

我正在玩MVVM和绑定。更具体地说,是一个显示对象集合的ListBox:

<ListBox ItemsSource="{Binding Scouts}" SelectedItem="{Binding SelectedScout, Mode=TwoWay}/>

在我的ViewModel中,它看起来像这样:

private ObservableCollection<Scout> scouts;
    private Scout selectedScout;

    public Scout SelectedScout
    {
        get { return selectedScout; }
        set
        {
            OnPropertyChanged("SelectedScout");
            value = selectedScout;
        }
    }

    public ObservableCollection<Scout> Scouts
    {
        get { return scouts; }
        set
        {
            OnPropertyChanged("Scouts");
            scouts = value; 
        }
    }

现在,ListBox显示集合中的Items很好,但我想要做的是单击Box中的项目,然后在TextBox中显示该项目的更多详细信息。我想我会将ListBox的SelectedItem属性绑定到我的ViewModel中的Selected-property(如上所示)并将属性绑定到TextBox,如下所示:

<TextBox Text="{Binding SelectedScout.Id}"/>

但它不起作用。当我在ListBox中选择一个项目时,TextBox保持空白,我认为这是因为我的SelectedScout属性remians null。

我一直在努力解决这个问题,我似乎无法找到解决方案。我不知道我错过了什么。

提前感谢您的帮助。

**编辑:我解决了这个问题。谢谢你的回答,但错误在于这一行:

 public Scout SelectedScout
    {
        get { return selectedScout; }
        set
        {
            OnPropertyChanged("SelectedScout");
            *value = selectedScout;*
        }
    }

当然应该在哪里:

selectedScout = value;

我觉得现在真的很蠢。谢谢您的帮助。

**

1 个答案:

答案 0 :(得分:0)

Binding list of objects with XAML

这是插入更新删除所选索引的正确示例。