DataBinding引用类型

时间:2009-02-05 18:22:34

标签: vb.net data-binding orm

我有一些具有这样的属性的类,并且它们完美地工作,因为它们非常正常:

    Public Overridable Property CustomerLastName() As String
        Get
            Return m_CustomerLastName.Value
        End Get
        Set(ByVal Value As String)
            m_CustomerLastName.Value = Value
        End Set
    End Property

我想将它们改为像这样工作(不要担心IField是什么,只要说它代表表中的一个字段就足够了):

    Public Overridable Readonly Property CustomerLastName() As IField
        Get
            Return m_CustomerLastName
        End Get
    End Property

这样,您可以执行Customer.CustomerLastName.PreviousValue或Customer.CustomerLastName.IsDirty等。

但是这没有正确绑定。可以理解,因为数据绑定应该是双向的,并且涉及到反射等。

当然它仍然是一条双向的街道,我只需要能够说,“嘿DataBinding!看看这里!”

因此。我该怎么办?

注意:现在,我正在尝试将DataBind用于GridView以进行显示。但我希望这是灵活的。

1 个答案:

答案 0 :(得分:0)

(更新重新编辑)如果它仅用于显示目的,您可以在实现IField的类上设置ToString()。


(原)

否 - 双向数据绑定需要INotifyPropertyChangedCustomerLastNameChanged事件。您可以通过实施ICustomTypeDescriptorTypeDescriptionProvider将其简化为自定义模型,但是您需要编写自己的PropertyDescriptor实现。

重新IsDirty - 在ShouldSerializeValue条款中PropertyDescriptor