设置绑定到ObservableCollection ObservableCollection的ListBox的DisplayMemberPath

时间:2017-09-27 21:14:06

标签: c# wpf listbox

如何设置绑定到ListBox ObservableCollection的{​​{1}}的{​​{1}}?一切都正常。 ObservableCollection正确显示其中的ListBox。当用户在ObservableCollection中选择一个时,ListBox的数据会显示为ObservableCollection。唯一的问题是ListBox为每个DataGrid显示(collection)(不是描述性的)。想象我需要放一个转换器,我做了这个;

ObservableCollection

然后有这样的标准转换器;

<ListBox ItemsSource="{Binding Path=MyCollection}" 
DisplayMemberPath="{Binding Converter={StaticResource CollectionConverter}}" />

问题是public class CollectionConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { //Convert Logic } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { //ConvertBack logic } } Convert从未触发过。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

重构第一个集合,如下所示:

class NamedObservableCollection : ObservableCollection<ObservableCollection<MyItem>> 
{  
    public string Name { get; private set;}

    public NamedObservableCollection(string name)
    {
        Name = name;
    }
}

<ListBox ItemsSource="{Binding Path=MyCollection}" DisplayMemberPath="Name"}/>