WPF привязывается к списку

У меня есть пользовательский элемент управления, пользователи которого я хочу, чтобы они установили DataContext для привязки к списку объектов. Однако в моем элементе управления я хочу отобразить этот список в виде Grid, но в нетривиальном порядке. Столбец/строка отображения каждого элемента будет определяться некоторым кодом, который я напишу.

Поэтому я не могу выполнить прямую привязку данных в своем элементе управления, мне нужно написать код, который будет читать DataContext, а затем выполнять обработку для правильного позиционирования каждого элемента.

Как бы это сделал относительный новичок в WPF? Я предполагаю, что часть, которую я не понимаю, - это то, как будет выглядеть код в моем пользовательском управлении для чтения элементов DataContext, чтобы я мог их обработать.

EDIT: Уточнение: я хочу подчеркнуть, что хочу выполнить привязку к элементу XAML Grid, а не к какой-либо другой сетке или DataGrid. Спасибо!


person Gabriel Magana    schedule 22.01.2010    source источник


Ответы (1)


Один из возможных способов добиться этого — использовать конвертер. Вы можете создать конвертер, который преобразует входной список в другой список, в котором порядок был изменен. Затем вы можете использовать «нормальную» привязку данных, которая будет использовать конвертер.

person japf    schedule 22.01.2010
comment
Хорошо, это звучит хорошо, но как мне связать выходные данные конвертера с сеткой, с каким-то образом указанным расположением каждого элемента? - person Gabriel Magana; 22.01.2010
comment
Вы можете изменить ItemsPanelProperty вашего ListBox на Grid. Затем вы можете создать стиль, связывающий данные со свойствами Grid.Row и Grid.Column, и установить для него значение ItemsContainerStyle. - person japf; 23.01.2010