问题 在运行时创建的控件上绑定数据源?

tim8w

知名会员
已加入
2020年9月8日
留言内容
81
编程经验
10+
我正在使用由Nish Nishant创建的自定义MultiColumnComboBox。我想我想在运行时进行定义,而不是在设计时进行定义,并且在绑定数据源时遇到问题。这是DataTable和MultiColumnCoboBox的代码,我试图将它们绑定在一起:

C#:
                    DataTable myDataTable = new DataTable("Defaults");
                    myDataTable.Columns.Add("DefectCode", typeof(string));
                    myDataTable.Columns.Add("DefectName", typeof(string));

                    myDataTable.Rows.Add(new string[] { "A01:", "Damage Leadwires/Sleeving" });
                    myDataTable.Rows.Add(new string[] { "A01-a:", "Damaged convolute tubing" });
                    myDataTable.Rows.Add(new string[] { "A01-b:", "Damaged Insulation" });
                    myDataTable.Rows.Add(new string[] { "A01-c", "Damaged Shrink Tubing" });
                    
                    MultiColumnComboBox myMultiColumnComboBox = new MultiColumnComboBox();
                    myMultiColumnComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
                    myMultiColumnComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
                    myMultiColumnComboBox.DataBindings.Add(new Binding("Text", myDataTable, "DefectCode", true));
                    myMultiColumnComboBox.DataSource = myDataTable;
                    myMultiColumnComboBox.DisplayMember = "DefectCode";
                    myMultiColumnComboBox.ValueMember = "DefectName";
                    myMultiColumnComboBox.DrawMode = DrawMode.OwnerDrawVariable;

我的问题是,当在运行时以这种方式定义它时,DataManager是未定义的。我究竟做错了什么?我知道您可能会说要联系Nish,但他没有回应。
 

tim8w

知名会员
已加入
2020年9月8日
留言内容
81
编程经验
10+
在创建控件之后,立即在窗体中添加控件,然后添加数据源。

不需要为文本属性添加DataBindings,DisplayMember将显示为选定绑定项的文本。
约翰,
创建表单后,便会在运行时中添加该控件。我刚刚添加了这一行:

C#:
myMultiColumnComboBox.DataBindings.Add(new Binding("Text", myDataTable, "DefectCode", true));

最近看看是否有帮助。删除该行无济于事。代码上线时,DataManager仍然为null:

C#:
myMultiColumnComboBox.DataSource = myDataTable;
 
最佳 底部