跳到主要内容
版本:11.0.0

在代码中更多地控制数据模板

如果您需要在代码中对数据模板进行更多的控制,可以编写一个实现了IDataTemplate接口的类。这样可以让您以所需的方式展示绑定数据类型的属性。

要使用IDataTemplate接口,您必须在数据模板类中实现以下两个成员:

  • public bool Match(object data) { ... } - 实现此成员以检查提供的绑定数据是否与您的IDataTemplate匹配。如果绑定的数据类型匹配,则返回true,否则返回false。
  • public Control Build(object param) { ... } - 实现此成员以构建并返回用于呈现数据的控件。

示例

以下是一个简单的IDataTemplate接口实现,用于在文本块中显示一些字符串数据:

using Avalonia.Controls.Templates;
...
public class MyDataTemplate : IDataTemplate
{
public Control Build(object param)
{
return new TextBlock() { Text = (string)param };
}

public bool Match(object data)
{
return data is string;
}
}

现在您可以在视图中使用MyDataTemplate类,如下所示:

xmlns:dataTemplates="using:MyApp.DataTemplates" -->
...
<ContentControl Content="{Binding MyContent}">
<ContentControl.ContentTemplate>
<dataTemplates:MyDataTemplate />
</ContentControl.ContentTemplate>
</ContentControl>

更多示例

信息

请查看_Avalonia UI_示例项目此处中的一些更高级的IDataTemplate接口实现。