0

XAF 不正式支持泛型。但是我使用它们并爱它们。

[DomainComponent]
Public abstract class SalesHeader<TSalesLine> : BasicBO
    where TSalesLine : SalesProductTransactionLine
{

    public virtual BindingList<TSalesLine> Lines { get; set; } 

}

[DomainComponent]
public class SalesOrder : SalesHeader<SalesOrderLine>, ISalesHeader<SalesOrderLine>

{
    public SalesOrder()
    {
        Lines = new BindingList<SalesOrderLine>();
        ContactPerson = new Person();   //etc

    }
}

这将在模型中创建一个名为 SalesHeader[SalesOrderLine]_Lines_ListView 的视图。默认情况下,此列表视图的 AllowDelete 和 AllowNew 属性为 True,但 AllowEdit 为 false。

如何让 AllowEdit 为真,这样我就不必使用模型编辑器来覆盖它?

4

2 回答 2

1

您可以使用生成器更新程序修改代码中的模型节点。

此方法与 EF 或 Generics 无关,但是您可以根据 View ObjectType 触发此行为。

您可能会发现以下参考资料很有帮助:

继承类的 Devexpress xaf 取消组合布局。(以编程方式)

如何:通过生成器更新程序在代码中创建其他 ListView 节点

于 2015-06-06T15:26:54.563 回答
0

我实施了埃里克的建议

   public class CustomListViewItemUpdater : ModelNodesGeneratorUpdater<ModelViewsNodesGenerator>
    {
        public override void UpdateNode(ModelNode node)
        {
            var a = node["SalesHeader[SalesOrderLine]_Lines_ListView"];
            ((IModelListView)(a)).AllowEdit = true;
        }
    }
于 2015-06-08T19:54:26.357 回答