我有一个简化为以下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}" />