我正在以下列方式定义数据网格的RowDetailsTemplate:
RowDetailsTemplate =“{StaticResource defaultTemplate}”
,其中
<UserControl.Resources>
<DataTemplate x:Key="defaultTemplate">
<StackPanel>
<TextBlock Text="default" x:Name="_txt" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="otherTemplate">
<StackPanel>
<TextBlock Text="other" x:Name="_txt" />
</StackPanel>
</DataTemplate>
</UserControl.Resources>
有没有办法以编程方式定义给定行使用的上述两个DataTemplates中的哪一个(可能在LoadingRowDetails()事件中?)
答案 0 :(得分:1)
您可以在LoadingRowDetails事件中添加以下代码,显然用您自己的条件替换我无用的If条件:
If 1 = 1 Then
e.Row.DetailsTemplate = CType(Resources("defaultTemplate"), DataTemplate)
Else
e.Row.DetailsTemplate = CType(Resources("otherTemplate"), DataTemplate)
End If
答案 1 :(得分:1)
第一:非常感谢汤姆。它节省了我的一天(周/月): - )
在C#中:
if (1 == 1)
{
e.Row.DetailsTemplate = (DataTemplate) Resources["defaultTemplate"];
}
else
{
e.Row.DetailsTemplate = (DataTemplate) Resources["otherTemplate"];
}
为此解决方案添加更多功能以下内容 msdn链接显示了如何在运行时创建控件。