我有一个简化为以下XAML的ListBox

<ListBox ItemsSource="{Binding Properties}"
     DisplayMemberPath="Name"
     SelectedItem="SelectedProperty" />

在我的ViewModel中:
private List<Property> propertyList;
private Property selectedProperty;
public List<Property> Properties
{
    get
    {
        return propertyList;
    }
    set
    {
        propertyList = value;
        NotifyPropertyChanged("Properties");
    }
}
public Property SelectedProperty
{
    get
    {
        return selectedProperty;
    }
    set
    {
        NotifyPropertyChanged("SelectedProperty");
        selectedProperty= value;
    }
}

我的列表框填充得很好,但是无论我尝试什么,当我在列表框中选择一个项目时,似乎都无法更新SelectedProperty。我尝试将其全部切换为使用ObservableCollection而不是List并为CollectionChanged添加一个事件处理程序,但这没有用。

我确定我缺少一些愚蠢的东西,看不到树木的木头。我快要束手无策了,需要有人介入并提供帮助。

最佳答案

您需要绑定(bind)到SelectedProperty:

<ListBox ItemsSource="{Binding Properties}"
 DisplayMemberPath="Name"
 SelectedItem="{Binding SelectedProperty}"  />

09-10 07:40