我想显示用户可以使用组合框选择的实例。组合框从ObservableCollection<string> Names {get;set;}
获取具有绑定的所有条目。
使用绑定显示此实例的所有属性的最佳方法是什么?
我的想法是创建一个ObservableCollection<Foo> Bar {get;set;}
。
现在用户选择进入组合框内。
使用所选名称,我将在ObservableCollection<Foo> Bar {get;set;}
中使用此名称搜索实例,并将其复制到新实例Foo TMPBar {get;set;}
中。
此实例应绑定到GUI。
这是一个很好的解决方案吗?
答案 0 :(得分:0)
不是将组合框绑定到名称列表,而是绑定到实际对象的列表,并使用ComboBox的DisplayMemberPath
属性来显示名称。
然后您可以通过SelectedItem
属性直接访问该对象。
所以你需要:
public ObservableCollection<Foo> Bar { get; set; }
public Foo Selected { get; set; }
在您的视图模型中,并且:
<ComoboBox ItemsSource="{Binding Bar}"
DisplayMemberPath=Name
SelectedItem="{Binding Selected}" />
在你看来。