使用数据绑定交换窗体上的UserControl是否可以在WinForms中使用数据绑定交换两个UserControl?我想更改应用程序UI以依赖于当前选定的ComboBox项目。我已将我的ComboBox.SelectedValue绑定到一个属性,现在想交换属性设置器中的UserControls。我尝试向表单添加一个相同大小的面板,并尝试将面板数据源设置为BindingList或类似的东西,不幸的是面板似乎没有类似于ComboBox的数据源......如果你可以告诉我如何将我的用户控件的数据绑定到我的表单的小提示。提前致谢。有点难,但可行。WF数据绑定的主要问题是缺少对绑定表达式的支持。但是,只要源属性提供更改通知,就可以借助Binding.Format方法使用Binding.Format事件来解决:staticvoidBind(Controltarget,stringtargetProperty,objectsource,stringsourceProperty,Func表达式){varbinding=newBinding(targetProperty,source,sourceProperty,true,DataSourceUpdateMode.Never);binding.Format+=(sender,e)=>e.Value=expression(e.Value);target.DataBindings.Add(绑定);}与你的情况类似的用法示例:以上是C#学习教程:使用数据绑定交换窗体上UserControls共享的所有内容。关注——使用系统;使用系统绘图;使用System.Windows.Forms;命名空间测试{静态类程序{[STAThread]staticvoidMain(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);varform=newForm();vartopPanel=newPanel{Dock=DockStyle.顶部,父级=形式};varcombo=newComboBox{Left=8,Top=8,Parent=topPanel};顶面板。高度=组合。身高+16;combo.Items.AddRange(new[]{“一”,“二”});连击lectedIndex=0;varpanel1=newPanel{Dock=DockStyle.Fill,Parent=form,BackColor=Color.Red};varpanel2=newPanel{Dock=DockStyle.Fill,Parent=form,BackColor=Color.Green};绑定(panel1,“可见”,组合,“SelectedIndex”,值=>(int)值==0);绑定(panel2,“可见”,组合,“SelectedIndex”,值=>(int)值==1);应用程序运行(表单);}staticvoidBind(Controltarget,stringtargetProperty,objectsource,stringsourceProperty,Funcexpression){varbinding=newBinding(targetProperty,source,sourceProperty,true,DataSourceUpdateMode.Never);绑定.Format+=(sender,e)=>e.Value=expression(e.Value);target.DataBindings.Add(绑定);}}}本文收集自网络,不代表立场。如涉及侵权,请点击维权联系管理员删除,如有转载请注明出处:
