簡體   English   中英

用於自定義控件的數據綁定將無法工作?

[英]Databindings for custom control wont work?

我很難理解為什么我的數據綁定似乎不適用於我的自定義類。 我使類(擴展了類)擴展了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”);

我不知道什么信息可能會有所幫助,所以請繼續。

我從由數據適配器填充的數據表中獲取要綁定的信息。 這個自定義類不在其自己的文件中,它是我項目中另一個靜態類的一部分。

我只是不理解,因為我使用相同的自定義屬性創建了一個自定義文本框,它可以綁定並正常工作。

任何幫助深表感謝。

我說的是這樣的:

someListControl.DataSource = datatable;
someListControl.DisplayMember = "someAnotherColumnName"

rbs_admin.DataBindings.Add("SelectedButton", datatable, "admin");

然后,從列表控件中選擇一個項目將使您的控件根據所選項目更新其綁定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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