3

ツリー ビューがあり、ツリー ビュー アイテム内でテキスト ブロックを使用しています。ツリービュー アイテムに「データ コンテキスト」を使用すると、テキスト ブロックのテキストをバインドできません。誰でもこの問題を解決するのを手伝ってくれますか?

 here is my xaml code..

<TreeViewItem ItemsSource="{Binding}" DataContext="{Binding XYZ}">
     <TreeViewItem.Header>
          <StackPanel>
             <Image Source="abc.png" />
             <TextBlock Text="{Binding BindContent}"></TextBlock>
           </StackPanel>
     </TreeViewItem.Header>
</TreeViewItem>

 in My View Model, I am using  

private string _content;
   public string BindContent
   {
     get{ return _content;}
     set{_content= value;}
   }

In my constructor I am setting value for Content...

ツリービュー アイテムのデータ コンテキストを使用していないときに、静的コンテンツを使用した場合 (または) 正常に動作しています。しかし、他のいくつかの理由で、Data Context を使用する必要があります。ツリー ビュー アイテムにデータ コンテキストを使用したときに、テキスト ブロックにコンテンツをバインドするにはどうすればよいですか?

前もって感謝します。

4

2 に答える 2

2

INotifyPropertyChanged問題は、実装していないか、プロパティ変更の通知イベントを発生させていない可能性があると思います。デフォルトでは、テキストはnullであり、ViewModelコンストラクターで設定しますが、そうでないINotifyPropertyChanged場合、ビューは通知されません。

これが問題の解決に役立つことを願っています...

于 2012-11-27T17:33:41.453 に答える
1

できることは2つ、

INotifyPropertyChangedビューモデルが Raul Otario の提案どおりに実装されていることを確認し、プロパティの変更時にイベントを発生させます。

次に、xaml が usercontrol にある場合は UserControl のようにバインディングで相対ソースを使用できます

<TextBlock Text="{Binding Path=DataContext.BindContent, 
                  RelativeSource={RelativeSource FindAncestor, 
                  AncestorType={x:Type UserControl}}}"/>

それが役に立てば幸い...

于 2012-11-28T04:37:25.973 に答える