Wpf 在Treeview项目中使用文本块时,内容绑定不适用于文本块

Wpf 在Treeview项目中使用文本块时,内容绑定不适用于文本块,wpf,xaml,mvvm,Wpf,Xaml,Mvvm,我有一个树状视图,我正在树状视图项中使用文本块。当我为树状视图项使用“数据上下文”时,我无法为文本块绑定文本。有人能帮我解决这个问题吗 here is my xaml code.. <TreeViewItem ItemsSource="{Binding}" DataContext="{Binding XYZ}"> <TreeViewItem.Header> <StackPanel> <Image

我有一个树状视图,我正在树状视图项中使用文本块。当我为树状视图项使用“数据上下文”时,我无法为文本块绑定文本。有人能帮我解决这个问题吗

 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...
这是我的xaml代码。。
在我的视图模型中,我使用
私有字符串\u内容;
公共字符串绑定内容
{
获取{return\u content;}
设置{u content=value;}
}
在我的构造函数中,我正在为内容设置值。。。
当我使用静态内容(或不使用静态内容)时,它工作正常 Treeview项的数据上下文。但出于其他一些原因,我需要使用数据上下文。 当我为树状视图项使用数据上下文时,如何为文本块绑定内容


提前感谢。

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

希望这能帮助你解决问题…

你可以做两件事

确保viewmodel按照Raul Otario的建议实现了INotifyPropertyChanged,并在属性更改时引发事件

其次,您可以在绑定中使用相对源,例如,如果您的xaml位于UserControl else窗口中,则使用UserControl

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


希望它能帮助…

查看VS输出窗口。您将发现指向确切问题的精确绑定错误。另外,使用ItemsSource for TreeViewItem的原因是什么?您应该为TreeView设置它,它是
XYZ
?您的属性
BindContent
是否属于XYZ类型?@HighCore:感谢您的建议,我们将对此进行调查…@Lonli Lokli-感谢您的回复,我正在使用项目源作为树状视图项目,因为我在树状视图中有两个树状视图项目。对于第一个项目,我绑定“XYZ”属性,对于另一个Treeview项目,我绑定其他一些属性。。因此,我对每个树视图项使用项源,而不是对树视图使用项源。。