绑定到ObservableCollection的“值”<keyvaluepair <object,string =“”>&gt; </keyvaluepair <object,>

时间:2013-11-29 22:33:54

标签: c# .net data-binding observablecollection keyvaluepair

我想将我的组合框ItemsSourse绑定到“值”,即(字符串组件)

ObservableCollection<KeyValuePair<object, string>>.

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以将ItemsSource绑定到ObservableCollection,然后将DisplayMemberPath设置为Value:

<ComboBox ItemsSource="{Binding YourCollection}" DisplayMemberPath="Value" />

然后,组合框中的值将与KeyValuePairs中的值匹配。

答案 1 :(得分:1)

最简单的方法是使用DisplayMemberPath属性:

<ComboBox ItemsSource="{Binding Pairs}" DisplayMemberPath="Value" />

或者,您可以在viewmodel中公开一个仅包含值的新属性。例如:

public ObservableCollection<string> AllValues { get; set; }

public ViewModel()
{
    AllValues = new ObservableCollection<string>(Pairs.Select(x => x.Value));
}
<ComboBox ItemsSource="{Binding AllValues}" />