繁体   English   中英

通过代码在UWP中创建DataTemplate

[英]Creating a DataTemplate in UWP from code

我正在创建XAML解析器,并且为了与UWP类进行交互,我需要从代码生成DataTemplate

我已经看到DataTemplate类具有LoadContent()方法,但是如何使用它呢? 有没有一种方法可以指定必须加载哪些内容?

顺便说一下,我已经尝试实现IDataTemplate接口,但是由于它是内部接口,因此我必须派生自DataTemplate

我已经看到DataTemplate类具有LoadContent()方法,但是如何使用它呢? 有没有一种方法可以指定必须加载哪些内容?

您可以参考DataTemplate.LoadContent方法 ,此文档中有示例代码,显示了如何在运行时使用LoadContent方法更改Border的外观。 这是指定必须加载哪些内容的方法。

我了解您可能想使用XAML Parser在背后的代码中创建整个DataTemplate ,但不加载Resources中存在的数据Resources ,那么您可以像这样编写示例:

StringReader reader = new StringReader(
   @"<DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"">
   <Ellipse Width=""300.5"" Height=""200"" Fill=""Red""/>
   </DataTemplate>");
var template = XamlReader.Load(await reader.ReadToEndAsync());
ListView lv = new ListView();
lv.ItemTemplate = template as DataTemplate;
ObservableCollection<int> coll = new ObservableCollection<int>();
for (int i = 0; i < 20; i++)
{
    coll.Add(i);
}
lv.ItemsSource = coll;
rootGrid.Children.Add(lv);

在这里,我使用XamlReader从字符串中解析了一个DataTemplate并将此DataTemplate用作ListViewItemTemplate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM