如何在属性中为某些类型创建和注册新的UI元素

本文关键字:注册 创建 元素 UI 类型 属性 | 更新日期: 2023-09-27 18:07:50

假设我有这样一个实体:

public class Person
{
    public string FullName { get; set; }
    public Address PersonAddress { get; set; }
}

其中AddressComplexType:

public class Address
{
    public string City { get; set; }
    public string Street {get; set; }
}

所以在数据库中我有PersonAddress_City, PersonAddress_Street列。

问题1:模型设计器没有显示这个ComplexType属性。我如何在申请中使用它们?

问题2:如何设计自定义控件并告诉XAF将其用于类型为Address的属性?

如何在属性中为某些类型创建和注册新的UI元素

我很确定PersonAddress将显示在模型设计器中,如果Address类继承自一个基本的XPO类,如XPCustomObject。

默认情况下,它将是一个LookupPropertyEditor(一个组合)在UI。您可以为它创建一个自定义控件,或者使用内置的ExpandObjectMembersAttribute将address成员展开到Person DetailView中。