WPF привязывает List <Dictionary <string, string >> к ListBox - PullRequest
0 голосов
/ 04 июня 2011
var list = new List<Dictionary<string, string>>{
                new Dictionary<string,string>{
                    {"id","1"},
                    {"name","foo"},
                }, 
                new Dictionary<string,string>{
                    {"id","2"},
                    {"name","bar"},
                }
            };

Я хочу связать этот список со списком.Это довольно просто:

listBox.ItemsSource=list;

, но проблема в том, что я не могу контролировать то, что отображается в списке.То, что я хочу, это отобразить dict ["name"].Я пытался:

listbox.DisplayMemberPath="name"

К сожалению, это не работает.

Ответы [ 2 ]

2 голосов
/ 04 июня 2011

Ваш код пытается отобразить в словаре свойство с именем name, которого не существует. Для доступа к индексатору используйте следующий синтаксис:

listBox.DisplayMemberPath = "[name]";

Кроме того, вы, вероятно, должны устанавливать такие вещи прямо в XAML, а не в коде позади.

0 голосов
/ 04 июня 2011

Я понял это:

<ListBox HorizontalAlignment="Left" Margin="8,35,0,77" Width="88" Name="mainListBox">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Label Content="{Binding Path=[name]}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

обратите внимание на <Label Content="{Binding Path=[name]}" />, он делает всю магию.

надеюсь, это поможет кому-нибудь в будущем:)

...