我與WinForms的組合框工作,並具有以下的手動綁定:數據綁定組合框「的SelectedItem」屬性有不正確的初始選擇
ComboBox c = new ComboBox()
{
Dock = DockStyle.Fill,
DropDownStyle = ComboBoxStyle.DropDownList,
DisplayMember = "Name",
};
c.DataBindings.Add ("SelectedItem", item, "SelectedPrinter", true, DataSourceUpdateMode.OnPropertyChanged);
c.DataSource = new List<Printer> (printers);
Printer
是值類型(因此?
,使這個Nullable<Printer>
背後。場面同時,Item
是實現INotifyPropertyChanged,並歸結爲一個類型(其正確實現INotifyPropertyChanged爲SelectedPrinter財產,我在這裏省略爲簡潔起見):
class Item
{
Printer? SelectedPrinter { get; set; }
}
問題是,當我將此ComboBox添加到窗體並顯示窗體時,將自動選擇可用打印機列表中的第一臺打印機。我希望組合框尊重,不管最初的SelectedPrinter屬性值是否爲空,無需選擇,或者包含某種打印機選擇。
我試圖在ComboBox被添加到控制層次之前和之後手動設置combobox.SelectedValue
,無濟於事。有什麼建議麼?
是的,這就是我最終做的。我按照http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/a530f011-54d9-44d1-a585-145ea28ff370/中所述添加了一個自定義組合框,然後添加了一個等於方法,現在它終於工作了。謝謝! – Pete 2011-06-03 11:40:05
@Pete:我很高興爲你工作。 – 2011-06-03 13:13:52