2012-02-16 14 views
1

私は、観察可能なコレクションからその情報を取得するカスタムツリーグリッドビューを含むWPF MVVMアプリケーションを持っています。ツリーグリッドビューコレクションのバインディングエラーの変更

observableコレクションで何も変更せずにアプリケーションを実行すると、正常に動作します。私はこれを解決する方法として

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ItemsControl', AncestorLevel='1''. BindingExpression:Path=HorizontalContentAlignment; DataItem=null; target element is 'TreeListViewItem' (Name=''); target property is 'HorizontalContentAlignment' (type 'HorizontalAlignment') 

任意のアイデア:

は、しかし、私が観察コレクション内の項目を変更する場合、私は次のエラーを取得しますか?

+0

コレクションの内容を変更するにはどうすればよいですか? – Tigran

+0

タイマーイベントで変更されています。イベントコールでは、ループして表示されるリストに有効な項目のみを追加する別のコレクションがあります。 –

答えて

2

このvery short blog postによれば、ListBoxItemsをバインドしようとするとこのエラーが発生する可能性があります。今あなたの上記のエラーで、あなたはTreeListViewItemのターゲット要素に問題がありますが、私はこれが同じ問題である可能性がある方法を間違いなく見ることができます。ブログで示唆しているこれを修正するための2つの方法の1つを試してみてください。どちらも単純にTreeListViewItem(または彼の場合はListBoxItem)のカスタムスタイルを作成しています。

<Style x:Key="DeviceContainerStyle" TargetType="{x:Type ListBoxItem}"> 
    <Setter Property="OverridesDefaultStyle" Value="True"/> 
  • 設定OverridesDefaultStyle

    1. 明示的にHorizo​​ntalContentAlignmentとVerticalContentAlignmentプロパティに設定された値

      <Style x:Key="DeviceContainerStyle" TargetType="{x:Type ListBoxItem}"> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
      <Setter Property="VerticalContentAlignment" Value="Stretch"/> 
      

    またはTrueに、ちょうど無視:2つの提案はにあります

    You woulもちろん、TreeListViewItemの場合はListBoxItemではなく、これらを変更してください。 =)

  • 関連する問題