CollectionViewSource を介して入力しているコンボボックスがあります。アイテムは、受信アイテム タイプ (この場合は ProjectViewModel) のデータ テンプレートを介して構築されます。これは、.NET 4.0 の WPF にあります。
私の window.resources では、次のように指定しました。
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
このスタイルにもかかわらず、私はまだ次のエラーが発生しています:
System.Windows.Data エラー: 4 : 参照 'RelativeSource FindAncestor、AncestorType='System.Windows.Controls.ItemsControl'、AncestorLevel='1'' でバインディングのソースが見つかりません。BindingExpression:Path=HorizontalContentAlignment; DataItem=null; ターゲット要素は 'ComboBoxItem' (Name='') です。ターゲット プロパティは 'HorizontalContentAlignment' (タイプ 'HorizontalAlignment') です
System.Windows.Data エラー: 4 : 参照 'RelativeSource FindAncestor、AncestorType='System.Windows.Controls.ItemsControl'、AncestorLevel='1'' でバインディングのソースが見つかりません。BindingExpression:Path=VerticalContentAlignment; DataItem=null; ターゲット要素は 'ComboBoxItem' (Name='') です。ターゲット プロパティは 'VerticalContentAlignment' (タイプ 'VerticalAlignment') です
ComboBox 要素にも Horizontal および Vertical ContentAlignment を指定しましたが、役に立ちませんでした。アイテムが正しく表示されるため、これは深刻な問題ではありません。ただし、デバッグ時にウィンドウを閉じると約 10 秒の遅延が発生し、約 4000 のエラー メッセージが出力ウィンドウに出力されます (正当なバインディング エラーを検出するには、このウィンドウを開く必要があります。
エラーを正しく読み取れていない可能性があります。バインディングの有効なソースが見つからないのはなぜですか? 私の知る限り、ComboBox と CollectionViewSource の使用方法は、その意図に沿っています。