Я работаю с диалоговым окном 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
и применения стилей и шаблонов. После завершения инициализации диалога ошибки прекращаются.
Кто-нибудь сталкивался с этим раньше? Кто-нибудь может предложить решение, которое мы могли упустить из виду?