2009-01-09 70 views
2

我以下列方式定义DataGrid的RowDetailsTemplate: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()事件中)?

+0

你想完成什么? – 2009-01-09 18:20:44

回答

1

您可以在LoadingRowDetails事件中添加以下代码,显然用自己更换我没用如果条件:

If 1 = 1 Then 
     e.Row.DetailsTemplate = CType(Resources("defaultTemplate"), DataTemplate) 
    Else 
     e.Row.DetailsTemplate = CType(Resources("otherTemplate"), DataTemplate) 
    End If 
1

首先:非常感谢汤姆。它救了我的天(周/月):-)

而在C#:


if (1 == 1) 
{ 
    e.Row.DetailsTemplate = (DataTemplate) Resources["defaultTemplate"]; 
} 
else 
{ 
    e.Row.DetailsTemplate = (DataTemplate) Resources["otherTemplate"]; 
} 

要添加更多的权力,这种解决方案如下 MSDN链接显示如何在运行时创建控件。

相关问题