2011-10-27 99 views
2

我在wpf win應用程序中使用wpf toolkit datagrid。在我的視圖模型中,我有一個綁定到datagrid的itemsource的observablecollection屬性。 學生課具有名稱,年齡,班級屬性並顯示在網格的每一列中。動態更改WPF Datagrid列標題

但我在我的視圖模型類中有一個名爲「Header1」的屬性,以及如何將它綁定到數據網格文本列的標題?當我使用時,它不會在網格中顯示標題字符串。我需要在運行時更新此列標題。我該怎麼做?我也嘗試了以下方法;

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

但是這也行不通?我用DataContext.Header1, ElementName=MyUsrCtrl也......但沒用。

怎麼可能?

+0

你爲什麼要使用的ElementName如果你綁定到你的視圖模型類的屬性? – Zannjaminderson

+1

你可以顯示一下你的xaml代碼嗎? –

回答

-1

不知道你的代碼太多,我只是在刺這個,但在這裏,我們走了。我假設你已經綁定你的整個目的是利用DataContext您的視圖模型,以及你對有關DataGrid像這樣綁定ItemsSource

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

假設這是真的,你最方式有你的頭文件綁定。只需刪除綁定的ElementName部分,如下所示:

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

這應該有所斬斷。另外需要注意的是確保您的視圖模型實現INotifyPropertyChanged,並且Header1屬性的設置者自己調用PropertyChanged方法。