を含む WPF ダイアログ ウィンドウで作業していますListBox
。リスト ボックスには、「アイコン」ビューと「リスト」ビューの両方を表示できます。これを実現するため に、対応する のペアだけでなく、 にListBoxItem
も動的に適用されるスタイルを使用しました。そのままでも美しく映えます。ただし、このダイアログをロードすると、次のような数十のバインド エラーが発生します。ListBox
ItemsPanelTemplate
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
が初期化され、スタイルとテンプレートが適用される前に、これが 1 回以上発生するようです。ダイアログの初期化が完了すると、エラーは停止します。
誰もこれに遭遇したことがありますか?私たちが見落としているかもしれない解決策を誰か提案できますか?