silverlight dataGrid中的每一行都必须具有相同的“RowDetailsTemplate”吗?

时间:2009-01-09 04:38:04

标签: silverlight

我正在以下列方式定义数据网格的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()事件中?)

2 个答案:

答案 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链接显示了如何在运行时创建控件。