请考虑以下课程:
public class Order {
public Person Customer { get; set; }
public string ProductId { get; set; }
}
public class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
}
现在说您希望'Order'类在属性网格中公开。您可以将Customer
装饰为可扩展。看起来像这样...
Customer (<-- This is expandable/collapsible)
FirstName
LastName
ProductID
但是...如果您只想显示FirstName
而不是整个Customer属性,而又希望它显示在与ProductID
相同的级别上,那么该怎么办... >
FirstName
ProductID
我在PropertyDefinitions
中尝试过的事情:
Name
设置为“ Customer.FirstName” Name
设置为“客户/名字” TargetProperties
(而不是Name
),先添加“客户”,再添加“名字” 我唯一能想到的就是做到这一点...
public class OrderWrapper {
public OrderWrapper(Order order)
=> Order = order;
private Order order;
public string FirstName {
get => order.Customer.FirstName;
set => order.Customer.FirstName = Value;
}
public string ProductId {
get => order.ProductId;
set => order.ProductId = Value;
}
}
然后将其用作属性网格中的选定对象。这似乎太过分了。有没有更简单的方法?