#c# #wpf #dictionary #listbox
#c# #wpf #словарь #listbox
Вопрос:
Я работаю над POS-системой и использую словарь для подсчета любых дубликатов в моем списке продуктов. Для этого я использую следующий Linq:
selectedProducts.GroupBy(x => x).ToDictionary(g => g.Key, g => g.Count());
Затем я привязываю этот словарь к списку, чтобы показать его официанту. Проблема в том, что способ, которым словарь выглядит при привязке к listbox, неясен.
Он отображается следующим образом: [Объект, количество]. Есть ли способ изменить способ отображения словаря в списке?
Заранее спасибо!
Комментарии:
1. Я думаю, вы ищете DisplayMemberPath=Ключ или DisplayMemberPath=Значение
2. @user3753988 что вы хотите отобразить?
Key
Value
или и то, и другое?3. Мой xaml довольно прост, это просто listbox. Способ, которым я привязываю свой список, выглядит следующим образом: количество словарей = Выбранные продукты. GroupBy(x => x).ToDictionary(g => g.Key, g => g.Count()); lbx_Products. ItemsSource = counts; Я хочу отобразить как ключ, так и значение, я просто хочу отредактировать его таким образом, чтобы оно выглядело так: X [Ключ] [Значение]
Ответ №1:
Вы могли бы попробовать добавить ItemTemplate в свой ListBox:
<ListBox ItemsSource="{Binding Path=yourDictionary}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Path=Value}"/>
<Label Margin="5,0,0,0" Content="{Binding Path=Key}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>