Как вы исправляете ошибки при загрузке wpf родственников? - PullRequest
1 голос
/ 15 января 2009

Я работаю с диалоговым окном WPF, которое содержит ListBox. В окне списка могут отображаться как значки, так и списки. Для этого мы использовали ListBoxItem стили, которые динамически применяются к ListBox, а также пару соответствующих ItemsPanelTemplate s. Как это выглядит красиво. Однако при загрузке этого диалогового окна мы получаем несколько десятков ошибок привязки, таких как:

System.Windows.Data Ошибка: 4: Не удается найти источник для привязки со ссылкой 'RelativeSource FindAncestor, AncestorType =' System.Windows.Controls.ItemsControl ', AncestorLevel =' 1 ''. BindingExpression: Path = VerticalContentAlignment; DataItem = NULL; целевым элементом является ListBoxItem (Name = ''); целевым свойством является «VerticalContentAlignment» (тип «VerticalAlignment»)

Наша теория состоит в том, что стили и шаблоны загружаются до ListBox и не могут найти свойства, с которыми они связаны, используя код, такой как:

<Setter Property="VerticalContentAlignment" Value="{Binding 
        Path=VerticalContentAlignment, RelativeSource={RelativeSource 
        AncestorType={x:Type ItemsControl}}}"/> 

Это происходит один или несколько раз до инициализации ListBox и применения стилей и шаблонов. После завершения инициализации диалога ошибки прекращаются.

Кто-нибудь сталкивался с этим раньше? Кто-нибудь может предложить решение, которое мы могли упустить из виду?

Ответы [ 2 ]

0 голосов
/ 02 июля 2010

Я нашел исправление здесь:

http://blog.jtango.net/2009/05/08/using-a-grid-as-the-itemspanel-for-a-listbox-in-wpf-binding-errors/

Вы устанавливаете стиль, используя ItemContainerStyle на ListBox.

0 голосов
/ 15 января 2009

Похоже, что это было покрыто здесь:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/db050ce6-d084-41ad-9a31-c01831687683

Предполагается, что это "известная" проблема.

...