我有一个数据网格,我在其中手动指定列(AutoGenerateColumns =“false”)。我正在使用MVVM,我想绑定列标题(文本),以便从我的ViewModel中获取它。但我找不到办法做到这一点。
我发现最接近的是: Wpf Toolkit. Bind DataGrid Column Header to DynamicResource ...这是一个“技巧”,您可以使用该技巧将列标题绑定到XAML中静态声明的字符串。但我需要从我的ViewModel中获取它。
我想要的原因是我想要用作列标题的文本将在整个GUI中的几个位置显示。为了确保它实际上是相同的,我希望在代码中提供它。我无法将字符串存储在XAML资源文件中,因为我还需要在代码中访问这些字符串。
我正在使用TeleRik的RadGridView,但如果我是标准的gridview,我猜我会遇到同样的问题。
任何提示赞赏!谢谢!
答案 0 :(得分:2)
在Silverlight中,我尝试了以下内容:
<DataGridTextColumn Header="{Binding ElementName=LayoutRoot, Path=DataContext.MyProperty}" ... />
(LayoutRoot是Window / UserControl中的第一个控件,MyProperty是VM中的东西) 它不起作用,因为该列无法访问可视树。
使用Grid可能值得在WPF中尝试。