如何在代码中定义DataTemplate?
如何在代码中(使用 C#)创建 DataTemplate
,然后向该 DataTemplate
添加控件?
<data:DataGrid.RowDetailsTemplate>
<DataTemplate>
<Border>
<Border Margin="10" Padding="10" BorderBrush="SteelBlue"
BorderThickness="3" CornerRadius="5">
<TextBlock Text="{Binding Description}" TextWrapping="Wrap"
FontSize="10">
</TextBlock>
</Border>
</Border>
</DataTemplate>
</data:DataGrid.RowDetailsTemplate>
我正在使用 Sivlerlight。
How can I create a DataTemplate
in code (using C#) and then add a control to that DataTemplate
?
<data:DataGrid.RowDetailsTemplate>
<DataTemplate>
<Border>
<Border Margin="10" Padding="10" BorderBrush="SteelBlue"
BorderThickness="3" CornerRadius="5">
<TextBlock Text="{Binding Description}" TextWrapping="Wrap"
FontSize="10">
</TextBlock>
</Border>
</Border>
</DataTemplate>
</data:DataGrid.RowDetailsTemplate>
I am using Sivlerlight.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
据我所知,在 Silverlight 中创建
DataTemplate
的唯一方法是使用 XamlReader。基本上,您只需将 XAML 作为字符串传递给它,它就会返回一个DataTemplate
。 Byron 的解决方案适用于 WPF,但 Silverlight(据我所知)不支持FrameworkElementFactory
。Scott Morrison:定义运行时的 Silverlight DataGrid 列
请注意
DataGridTemplateColumn
的选项 #2。As far as I know, the only way to create a
DataTemplate
in Silverlight is to use XamlReader. Basically you would just pass it the XAML as a string and it will give you back aDataTemplate
. Byron's solution would apply to WPF but Silverlight (to the best of my knowledge) does not supportFrameworkElementFactory
.Scott Morrison: Defining Silverlight DataGrid Columns at Runtime
Take note of option #2 for
DataGridTemplateColumn
.您可以使用
FrameworkElementFactory
添加诸如TextBlock
之类的控件。然后,您可以将TextBlock
添加到DataTemplate
的VisualTree中。就像这样:You can add a control like a
TextBlock
using aFrameworkElementFactory
. Then you can add theTextBlock
to the VisualTree of theDataTemplate
. Like so:Microsoft 在 MSDN 上有一篇很好的文章:“数据模板概述。”我会从那里开始。
更新:呃,从头开始。我阅读了您对“代码中”的要求。我将把链接留在这里,供任何可能偶然发现这篇文章的人使用。
Microsoft has a good article over at MSDN: "Data Templating Overview." I would start there.
Update: Eh, scratch that. I read over your requirement for "in code." I'll just leave the link here for whoever might stumble upon this post.