Как я могу связать несколько ListViews в одном шаблоне? - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть ControlTemplate для 3 ListViews.Я использую шаблон в ListView, например.

Template="{StaticResource listViewTemplate}"

Когда я пытаюсь связать коллекцию с представлениями списка ItemsSource, ничто не радует.Если я связываю источник Items Collection элемента ControlTemplate, он работает нормально.

Проблема в том, что у меня есть 3 ListViews, использующих этот ControlTemplate, и я хочу связать 3 различных коллекции с ListViews.

Возможно ли это

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Ваш шаблон управления должен связать свой ItemsSource с помощью TemplateBinding, например,

<ControlTemplate ...>
    <ItemsSource = "{templateBinding ItemsSource}"

Это позволит вам связать коллекцию в представлениях списка ItemSource (это будет передано ControlSemplates ItemsSource)

0 голосов
/ 02 ноября 2011

Добавьте x:Shared="False" к вашему статическому ресурсу. Это будет гарантировать, что поверхностная копия объекта создается каждый раз, когда вы запрашиваете ресурс.

Таким образом, каждый из ваших ListViews получит отдельный экземпляр шаблона элемента управления.

Вот документация по нему: http://msdn.microsoft.com/en-us/library/aa970778.aspx

...