[英]Databinding issue with custom combobox
我創建了一個自定義只讀組合框,該組合框在大多數情況下都可以使用。 但是,當我從外部來源下載數據並設置數據綁定時,會有一些非常奇怪的行為。 請看下面的代碼:
cboGender.DataSource = Animal.SpecificGenders;
cboGender.DataBindings.Clear();
cboGender.DataBindings.Add("text", animal, "Gender");
((ReadOnlyComboBox)cboGender).Readonly = true;
當上述行命中時,它將調用此屬性:
public bool Readonly
{
get
{
return readOnly;
}
set
{
textBox.Text = this.Text;
ShowControl();
readOnly = value;
}
}
現在,我的問題是,當我將ReadOnly設置為false時,這可以正常工作。 上述設置器中的“ this.Text”顯示了已綁定到它的值。 但是,當我將Reaonly設置為true時,“ this.Text”顯示為空字符串。 這是我唯一的不同。 this.Text是指標准組合框文本屬性。
有人有什么想法嗎?
基本的ComboBox具有一個DropDownStyle屬性,可以將其設置為DropDownList,這實際上使ComboBox為只讀。 也許您可以這樣做,而不是實現自己的ReadOnly屬性。
如果沒有,我懷疑您的問題存在於ShowControl()方法中。 即使您首先設置了TextBox.Text屬性,ShowControl()方法中的某些內容仍阻止了控件的更新。 而且,實際上,從該屬性設置另一個屬性對我而言似乎並不正確。
您已經在使用DataBinding,因此設置Text屬性應該已經在其他地方進行了處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.