3

1 つの問題に直面しました。何かアドバイスをいただければ幸いです。

エラーメッセージ:

System.Windows.Data エラー: 4 : 参照 'RelativeSource FindAncestor、AncestorType='System.Windows.Controls.ItemsControl'、AncestorLevel='1'' でバインディングのソースが見つかりません。BindingExpression:Path=Horizo​​ntalContentAlignment; DataItem=null; ターゲット要素は 'TreeViewItem' (Name='') です。ターゲット プロパティは 'Horizo​​ntalContentAlignment' (タイプ 'Horizo​​ntalAlignment') です

ツリービュー コントロール (C# WPF .NET 4.0) があり、xaml で datatemplate を使用するか手動でいくつかの項目をこのツリービューに追加し、両方ともデータ バインディングを使用します。

新しいデータ構造を受け取ったら、ツリービューのすべてのアイテムを消去して新しいアイテムを再生成する必要がありtreeview_Control.Items.Clear()ます。GUI の観点からは正常に動作しているように見えますが、Visual Studio で出力ウィンドウを見ると、上記のようないくつかのエラー メッセージが表示されます。

解決策を探していくつかの方法を試しましたが、まだうまくいきません。誰かがこのエラー メッセージを無視することを勧めましたが、私は本当にこれを解決したいと思っています。

アイデアがあれば、これについて私を助けてください。

4

3 に答える 3

3

申し訳ありませんが、これはコメントですが、コメント セクションに収まりません。

ItemContainerStyleTreeView に を追加して、エラーが修正されるかどうかを確認できますか?で同じ問題が発生しListView、これがエラーを削除する唯一の回避策でした。

<TreeView.ItemContainerStyle>
    <Style TargetType="{x:Type TreeViewItem}">
        <Setter Property="HorizontalContentAlignment" Value="Left"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
    </Style>
</TreeView.ItemContainerStyle>
于 2013-09-10T21:54:20.283 に答える
0

私は同じ問題を抱えていました.ViewModelを介してツリービューからアイテムを削除していたとき、同じ無害なエラーメッセージを受け取りました. UserControl.Resources で TreeViewItem のスタイルを定義しました。そのスタイルには、コンテンツの配置のセッターもあります。

<Style TargetType="TreeViewItem" x:Key="myTreeViewItemStyle"
             BasedOn="{StaticResource {x:Type TreeViewItem}}">
            <Setter Property="HorizontalContentAlignment"
                    Value="Left" />
            <Setter Property="VerticalContentAlignment" Value="Center"/>
    ...</Style>

私に役立ったのは、TreeView に ItemContainerStyle 参照を追加することでした。

<TreeView ItemsSource="{Binding Items}" ItemContainerStyle="{StaticResource ResourceKey=myTreeViewItemStyle}">
于 2014-02-06T10:53:31.460 に答える