2010-03-04 96 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