【发布时间】:2012-06-19 05:02:03
【问题描述】:
我在后台有ViewModel(实现INotifyPropertyChanged) 和类Category,它只有一个string 类型的属性。我的 ComboBox SelectedItem 绑定到类别的实例。当我更改实例的值时,SelectedItem 没有被更新,Combobox 也没有被改变。
编辑:代码
组合框:
<ComboBox x:Name="categoryComboBox" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2"
Margin="10" ItemsSource="{Binding Categories}"
DisplayMemberPath="Name" SelectedValue="{Binding NodeCategory, Mode=TwoWay}"/>
属性:
private Category _NodeCategory;
public Category NodeCategory
{
get
{
return _NodeCategory;
}
set
{
_NodeCategory = value;
OnPropertyChanged("NodeCategory");
}
}
[Serializable]
public class Category : INotifyPropertyChanged
{
private string _Name;
[XmlAttribute("Name")]
public string Name
{
get
{
return _Name;
}
set
{
_Name = value;
OnPropertyChanged("Name");
}
}
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
[field:NonSerialized]
public event PropertyChangedEventHandler PropertyChanged;
}
而我正在尝试的是:当我设置时
NodeCategory = some_list_of_other_objects.Category;
使用适当的DisplayMemberPath 在Combobox 中选择该项目
【问题讨论】:
-
你能贴一些代码吗,尤其是xaml
-
是否绑定 SelectedItem 属性而不是选定值?
-
尝试将更新源触发器添加到您的绑定 UpdateSourceTrigger=PropertyChanged
-
我再次编辑了帖子,最后有解释。
-
已经试过了:)没有成功:/因为我改变了后端的值
标签: c# .net wpf data-binding mvvm