2016-04-16 33 views
0

私はstackoverflow全体を見渡しましたが、すべてのソリューションを試しましたが、まだ動作させることができませんでした。ItemsControlの親DataTemplateプロパティへのバインド

は、私は、このビューモデルとXAMLを持って言う:

class MyViewModel 
{ 
    public MyStringValue {get;set;} = "HelloWorld" 

    public IList<CustomObject> ChildViewModels{get;set;} 
} 

<DataTemplate DataType="{x:Type local:MyViewModel}"> 
    <ItemsControl ItemsSource="{Binding ChildViewModels}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Grid> 
        <TextBlock Text="{Binding Path=MyStringValue, 
         RelativeSource={RelativeSource Mode=FindAncestor, 
         AncestorType={x:Type local:MyViewModel}}}"/> 
       </Grid> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</DataTemplate> 

私はこのエラーメッセージ取得しておく: は、「参照して「RelativeSource FindAncestorを結合するためのソースを見つけることができませんが...」 だから、基本的に、私がしようとしていますItemsControlの親コンテナをバインドすることはできないようです。

ご協力いただければ幸いです。

ありがとうございます!

答えて

0

RelativeSource AncestorTypeは、より高いレベルのビジュアルツリー(ItemsControlはここにあります)に属するものです。

MyStringValueはItemsControlにのプロパティではありませんので、あなたがモデル(DataContextの)

{Binding Path=DataContext.MyStringValue, 
     RelativeSource={RelativeSource AncestorType=ItemsControl}}" 
+0

を表示する点までと同様の結合パスを変更する必要がありますうわー、それはそれは取ったすべてのですか?私はwpfビジュアルツリーコンセプトにまだまだ慣れていません。どうもありがとう!ありがとう@アシュ!私はビジュアルツリーレベルとバインディングの仕組みを読むことができる良いチュートリアルはありますか? – Cgt

+0

@Cgtについては、こちらをご覧ください:http://stackoverflow.com/questions/15982834/tutorial-on-advanced-xaml-databinding and http://stackoverflow.com/questions/3456677/concepts-of-visul-tree -and-logical-tree – ASh

+0

ありがとう、私はそれを見ます!あなたは最高です。 – Cgt

関連する問題