动态更改WPF数据网格列标题

3
我正在使用WPF工具包中的DataGrid在WPF窗口应用程序中。在我的视图模型中,我有一个可观察集合属性,它被绑定到数据网格的项源。 学生类具有名称、年龄和班级属性,并在网格的每个列中显示。
但是,我在我的视图模型类中有一个名为“Header1”的属性,我该如何将其绑定到数据网格文本列的标题?当我使用它时,它不会在网格中显示标题字符串。我需要在运行时更新此列标题。我该怎么做?我也尝试了以下方法;
<dg:DataGridColumn Header = "{Binding Header1, ElementName=MyUsrCtrl}" />

但是这也不起作用?我使用了DataContext.Header1,ElementName=MyUsrCtrl,但没有用。
为什么会这样?

如果你绑定的是视图模型类中的属性,为什么要使用ElementName呢? - Zann Anderson
1
你能展示一下你的 XAML 代码吗? - Rohit Vats
2个回答

2

-1

不了解你的代码,我只是猜测一下,但我们来试试看。我假设你已经使用DataContext将整个视图绑定到视图模型,并且你正在像这样绑定DataGridItemsSource

<dg:DataGrid ItemsSource="{Binding MyCollection}" />

假设这是真的,您的标题绑定已经完成了大部分工作。只需删除绑定中的ElementName部分,就像这样:

<dg:DataGridColumn Header = "{Binding Header1}" />

这应该会有所帮助。还有一件事需要注意的是要确保你的视图模型实现了INotifyPropertyChanged,并且Header1属性的setter方法会调用自己的PropertyChanged方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接