2012-02-09 3 views
0

У меня есть элемент списка с таблицей данных, которая содержит несколько компонентов внутри панели стека. Теперь я хочу разделить размер строк списка равномерно между количеством элементов в списке (в зависимости от количества строк), поэтому, если в списке всего 2 элемента, высота каждого из 2 списков будет (800/2), если 3 (800/3) и т. Д. (есть предел, по которому размер строки останется постоянным)связывание различного набора элементов в списке

Моя проблема заключается в том, как мне привязать эту рассчитанную высоту к контейнеру (стеке панели) списка? так как я установил свойство itemsource элементов listitems, а «контейнер» находится внутри списка?

+0

Если у вас ур код будет полезен – Apoorva

ответ

0

Способ, которым я хотел бы заняться этим, состоял в том, чтобы создать ValueConverter, который смотрит на количество элементов в вашем List<T> и делает математику, чтобы рассчитать, насколько высоки отдельные элементы StackPanel. Затем он вернет это значение как int.

Чтобы положить кусочки вместе, в вашем XAML вы бы связать ваш StackPanel.Height свойство к Count собственности на вашем List<T>, указав свой ValueConverter как преобразователь свойства.

DataContext может получить немного сложнее, когда вы пытаетесь получить доступ к Count собственности, так как StackPanel будет иметь свой DataContext набор для отдельного элемента списка. Но вы, вероятно, можете обойти это, добавив свойство Count к каждому элементу в вашем списке.

Вот хороший пост] (http://www.jeff.wilcox.name/2008/07/visibility-type-converter/) около ValueConverter. Он охватывает преобразование bool в свойство Visibility, но понятия те же.

Смежные вопросы