我有一个树视图,我在树视图Item中使用了一个Text块。我无法绑定文本块的文本当我使用“数据上下文”作为我的Treeview项目时。任何人都可以帮我解决这个问题。
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项的数据上下文。但由于其他一些原因,我需要使用数据上下文。 当我使用Tree Context for Tree view Item ...
时,如何绑定Content for Text块先谢谢。
答案 0 :(得分:2)
我认为问题可能是您没有实现INotifyPropertyChanged
,或者您没有提出notify属性更改事件。默认情况下,文本为null,然后在ViewModel
的构造函数中设置它,但如果它不是INotifyPropertyChanged
,则不会通知视图。
希望这可以帮助您解决问题...
答案 1 :(得分:1)
你可以做两件事,
确保您的viewmodel按照Raul Otario的建议实现INotifyPropertyChanged
,并在属性更改时引发事件,
其次,你可以在你的绑定中使用相对源代码,如果你的xaml在usercontrol上,则可以使用UserControl其他Window
<TextBlock Text="{Binding Path=DataContext.BindContent,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}}}"/>
希望它有所帮助...