簡體   English   中英

如何在運行時創建DataTemplate?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM