2010-09-16 183 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