2009-02-05 31 views
0

我有一些類,有這樣的屬性,它們完美地工作,因爲他們都非常正常:數據綁定引用類型

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的顯示目的。但我希望這是靈活的。

+0

你使用什麼樣的數據綁定? – 2009-02-05 18:26:15

回答

0

(更新重新編輯)如果僅用於顯示目的,您可以在實現IField的類上設置ToString()。


(原始)

否 - 2路數據綁定希望任一INotifyPropertyChangedCustomerLastNameChanged事件。您可以通過執行ICustomTypeDescriptorTypeDescriptionProvider將其填充到自定義模型中,但您需要編寫自己的PropertyDescriptor實現。

Re IsDirty - 即ShouldSerializeValuePropertyDescriptor條款。