我很難理解爲什麼我的數據綁定似乎不適用於我的自定義類。我做了(被黑客攻擊)我的類擴展了Control類來添加數據綁定功能,但它實際上並沒有綁定到我的自定義屬性。自定義控件的數據綁定將無法正常工作?
我爲我的自定義類的代碼是:
public class RadioButtonSet : System.Windows.Forms.Control
{
private Dictionary<System.Windows.Forms.RadioButton, int> buttonList;
private int selectedValue;
public RadioButtonSet()
{
buttonList = new Dictionary<System.Windows.Forms.RadioButton, int>();
}
public void AddButton(System.Windows.Forms.RadioButton button, int buttonValue)
{
if (this.buttonList.ContainsKey(button))
throw new Exception("Button set already contains specified button");
else if (buttonValue <= 0)
throw new Exception("Cannot add specified key to button set");
else if (button == null)
throw new Exception("Parameter button cannot be null");
else
{
button.CheckedChanged += button_CheckedChanged;
this.buttonList.Add(button, buttonValue);
}
}
private void setSelectedButton()
{
this.buttonList.FirstOrDefault(x => x.Value == this.selectedValue).Key.Checked = true;
}
private void button_CheckedChanged(object sender, EventArgs e)
{
System.Windows.Forms.RadioButton btn = sender as System.Windows.Forms.RadioButton;
this.selectedValue = this.buttonList[btn];
}
public int SelectedButton
{
get
{
return selectedValue;
}
set
{
selectedValue = value;
setSelectedButton();
}
}
}
我嘗試使用以下,其中rbs_admin是我的自定義類的實例綁定到這個類:
rbs_admin.DataBindings.Add (「SelectedButton」,datatable,「admin」);
我不知道什麼信息可以幫助所以這裏。
我從數據適配器填充的數據表中獲取綁定信息。這個自定義類不在它自己的文件中,它是我的項目中另一個靜態類的一部分。
我只是不明白,因爲我創建了具有相同的自定義屬性的自定義文本框,它綁定並正常工作。
任何幫助,非常感謝。
你的綁定是正確的,但你錯過了一個事實,即你需要通過數據表來設置一個選定的行,以便用戶控件更新它的綁定。 – 2015-02-24 03:50:12