[英]How to create DataTemplate at runtime?
我已經在XAML中定義了DataTemplate,但是我需要將其更改為在運行時定義,因為其綁定是動態的。
<UserControl.Resources>
<DataTemplate x:Key="myCellTemplate">
<TextBlock Text="{Binding Description}" Margin="4"/>
</DataTemplate>
</UserControl.Resources>
有什么辦法可以在后台代碼中定義它嗎? 謝謝。
您可能可以使用自定義DataTemplateSelector來完成所需的工作,如果可能的話,我建議您使用該方法。 也就是說,可以在代碼中創建一個DataTemplate:
Type type = typeof(MyUserControl); //for example
var template = new DataTemplate();
template.VisualTree = new FrameworkElementFactory(type);
return template;
在這種情況下, type
是您要作為模板根目錄的視覺元素的類型。 如有必要,您可以使用工廠添加其他元素,但是在使用這種情況的一種情況下,我只是創建了UserControl元素來表示我正在動態創建的不同模板。
抱歉,Silverlight不支持此功能。 在Silverlight中,您必須使用XamlReader 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.