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...

当我使用静态内容(或)当我不使用 Treeview 项目的数据上下文时,它工作正常。但由于其他一些原因,我需要使用数据上下文。当我将数据上下文用于树视图项时,如何为文本块绑定内容...

提前致谢。

4

2 回答 2

2

我认为问题可能是您没有实现INotifyPropertyChanged或者您没有引发通知属性更改事件。默认情况下,文本为 null,然后在ViewModel的构造函数中设置它,但如果不是,INotifyPropertyChanged则不会通知视图。

希望这可以帮助您解决问题...

于 2012-11-27T17:33:41.453 回答
1

你可以做两件事,

确保您的视图模型INotifyPropertyChanged按照 Raul Otario 的建议实现,并在属性更改时引发事件,

其次,您可以在绑定中使用相对源,例如,如果您的 xaml 在用户控件上,则 UserControl 其他窗口

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

希望能帮助到你...

于 2012-11-28T04:37:25.973 回答