2010-09-16 177 views
1

我有一个datagrid,我在其中手动指定列(AutoGenerateColumns =“false”)。我使用MVVM,我想绑定列标题(文本),以便从ViewModel中获取它。但我找不到这样做的方法。WPF:将DataGrid列标题绑定到ViewModel

我发现的最接近的事情是这样的: Wpf Toolkit. Bind DataGrid Column Header to DynamicResource ......这是一个“绝招”,使用它可以列标题绑定到XAML静态声明的字符串。但我需要从我的ViewModel中获取它。

我想这样做的原因是我想用作列标题的文本将在整个GUI的几个地方显示。为了确保它在任何地方都是相同的,我希望它在代码中可用。而且我不能将字符串存储在XAML资源文件中,因为我还需要访问代码中的这些字符串。

我使用TeleRik的RadGridView,但我猜如果我使用标准的gridview,我会遇到同样的问题。

任何提示赞赏!谢谢!

回答

2

在Silverlight我曾尝试以下:

<DataGridTextColumn Header="{Binding ElementName=LayoutRoot, Path=DataContext.MyProperty}" ... /> 

(LayoutRoot是在Window /用户控件的第一控制,myProperty的是在虚拟机的东西) 它不起作用,因为该列没有访问视觉树。

这可能是值得一试WPF与您的网格。

+1

它的工作原理!非常感谢Timores! :) – haagel 2010-09-21 12:39:46

+0

在WPF 4.5中没有适用于我。错误“未找到框架导师”。我正在使用DataGridTemplateColumn – 2013-01-15 03:54:07