2010-03-04 150 views
2

我有一個GridView控件,我添加了GridViewColumns。我正在使用GridViewColumn的DisplayMemberBinding屬性,但現在我想使用CellTemplate。我對字典有約束力。WPF動態設置CellTemplate和綁定

下面的代碼曾與DisplayMemberBinding:

var column = new GridViewColumn 
{ 
    Header = current.Key, 
    DisplayMemberBinding = new Binding("[" + current.Key + ]") 
}; 

現在,我需要做同樣的CellTemplate,但由於某種原因,我不知道爲什麼它不顯示的項目。

var column = new GridViewColumn 
{ 
    Header = current.Key, 
    CellTemplate = (DataTemplate)FindResource("GridViewTextBlockDataTemplate"), 
}; 

這裏是在Window.Resources定義的DataTemplate:

<DataTemplate x:Key="GridViewTextBlockDataTemplate" x:Name="GridViewTextBlockDataTemplate"> 
    <TextBlock Text="{Binding Path=[Key]}"></TextBlock> 
</DataTemplate> 

感謝, 阿扎姆

+0

是對FindResource方法返回null或實際的DataTemplate? 如果它返回null,請嘗試this.Resources [「GridViewTextBlockDataTemplate」]。 – Charlie 2010-03-04 16:57:49

+0

它返回DataTemplate。我刪除了DisplayMemberBinding並添加了CellTemplate。但是現在如何在運行時更改TextBlock Text。 – azamsharp 2010-03-04 18:32:55

+0

我有類似的要求。運氣好的話 ? – 2013-01-03 09:05:00

回答

0

您的解決方案是正確的,只是讓你只需要在文本塊的價值具有關鍵字綁定功能,並且無需在綁定數據模板時提供路徑,它會自動分配值。

如果不工作,嘗試使用DataTemplate中選擇了DataGrid和有關詳細說明,在DataTemplate中選擇請看看這一個鏈接: WPF DataTemplate Selector Tutorial