簡體   English   中英

自定義組合框的數據綁定問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM