WinForm 繫結到巢狀物件上的屬性

2022-01-11 19:40:21 字數 1445 閱讀 4083

關鍵字: windows forms, databindings, nested class, 巢狀類

在 winform 中很早就已經支援資料繫結, 使用資料繫結可以大大減少更新介面和資料的**.

一般情況下, 使用自定義的簡單物件時資料繫結可以很好的工作, 當我們的物件越來越複雜, 乙個物件中使用另乙個物件作為屬性時, 簡單的資料繫結已經無法滿足需求.

例如有下面兩個物件:

/// /// 外部實體

///

public class outer : inotifypropertychanged

set}

}public inner inner

set}

}private void raisepropertychanged([callermembername]string propertyname = null)

}

/// /// 內部實體

///

public class inner : inotifypropertychanged

set}

}private void raisepropertychanged([callermembername]string propertyname = null)

}

資料繫結使用如下:

//初始化物件

var outer = new outer();

//初始化繫結物件

var outerbindingsource = new bindingsource() ;

var innerbindingsource = new bindingsource(outer, nameof(outer.inner));

//繫結到控制項

this.textboxname.databindings.add("text", outerbindingsource, nameof(outer.name));

this.textboxinnername.databindings.add("text", innerbindingsource, nameof(outer.inner.name));

//1. 設定 combobox 資料來源

this.combobox.datasource = enum.getvalues(typeof(customenum));

this.combobox.selectedindex = 0;

//2. 設定繫結

this.combobox.databindings.add(nameof(this.combobox.selecteditem), bindingsource, nameof(bindingsource.customenumproperty));

Activity繫結到Service上

當乙個 activity 繫結到乙個 service 上時,它負責維護 service 例項的引用,允許你對正在執行的 service 進行一些方法呼叫。activity 能進行繫結得益於 service 的介面。為了支援 service 的繫結,實現 onbind 方法如下所示 private f...

繫結到非元素物件學習筆記

昨天學習了元素物件之間的單向繫結 雙向繫結等,今天開始學習將元素繫結到非元素物件。元素繫結到元素需使用binding.elementname屬性指定源,而繫結到非元素物件則使用下面幾個屬性 source 該屬性是指向源物件的引用 換句話說就是object,但該object中必須有公開的屬性。rela...

c 將資料集繫結到多值控制項上

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...