我創建了下面的類人模式:.NET的WinForms組合框的BindingSource和數據綁定問題
namespace DataBindingTest
{
public enum colorEnum
{
Red,
Green,
Yellow,
Blue,
}
class Person
{
private string _Name;
private int _Age;
private colorEnum _FavoriteColor;
private bool _HasAllergies;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public int Age
{
get { return _Age; }
set { _Age = value; }
}
public colorEnum FavoriteColor
{
get { return _FavoriteColor; }
set { _FavoriteColor = value; }
}
public bool HasAllergies
{
get { return _HasAllergies; }
set { _HasAllergies = value; }
}
}
}
在我的主要形式,我有一個將被綁定到Person對象的數組的組合框。當我從這個組合框中選擇一個人時,我想要顯示他們的年齡(在NumericUpDown控件中),他們是否有過敏(作爲複選框)和他們最喜歡的顏色(在DropDownStyle設置爲DropDownList的另一個組合框中)。要做到這一點,我有:
- 增加了組合框(comboBoxPeople),NumericUpDown控件,一個複選框和另一組合框(comboBoxFavoriteColor)到我的形式。
- 創建一個新的DataSource從上面
- 增加了一個BindingSource的宣佈我的Person類我的形式
- BindingSource的DataSource屬性設置爲在#2中定義的數據源。
- 將數據源的comboBoxPeople到BindingSource和將DisplayMember到BindingSource的
- Name屬性我已綁定BindingSource的時代屬性NumericUpDown控件和BindingSource的對CheckBox控件的HasAllergies財產
- 在我的構造函數中,我創建了3個Person對象的數組,定義的所有它們的屬性,然後BindingSource的DataSource屬性設置爲這個數組
到目前爲止,一切都按預期工作。現在我想在comboBoxFavoriteColor中顯示該人最喜歡的顏色(即BindingSource的FavoriteColor屬性)。我已經將DropDownStyle設置爲DropDownList,因爲FavoriteColor是一個枚舉。然而,我不清楚我應該如何綁定這個組合框,以便1)包含FavoriteColor枚舉值,並且2)當我從comboBoxPeople中選擇一個人時,將適當的顏色設置爲SelectedItem。任何人都可以給我一個這個想法嗎?非常感謝!
+1,今天學到了新東西 –
這就是我想要的方式! :-)這是同一個週末的兩次,你給了我一個*完美*的解釋,我正在嘗試做的事情。我衷心感謝你! – user685869
我的榮幸。謝謝你寫的問題! –