Glu*_*uip 6 c# bindingsource winforms
我在我的Windows窗体应用程序中使用bindingsource来填充我视图中的一些文本框等.绑定工作正常但是如何从我的对象中取消订阅我的bindingSource?
bindingSource.DataSource = new Foo();//OK
bindingSource.DataSource = null;//Not ok
Run Code Online (Sandbox Code Playgroud)
如果我尝试解除绑定设置data = null我得到一个例外:
System.ArgumentException:无法绑定到DataSource上的属性或列Bar.参数名称:dataMember
我不想删除所有绑定到我的控件(我有很多),但只要bindingSource没有数据就想挂起绑定....
我找到了这样的解决方法,bindingSource.DataSource = typeof(Foo);但是这样吗?
类型"变通方法"实际上是Windows表单设计器在PropertyGrid中设置BindingSource的DataSource时所执行的操作,并从"项目数据源"中选择一种类型.
查看表单的*.designer.cs文件中生成的代码.
我们在其中一个产品中使用这个"技巧",并且它已经运行了很多年了.
问候
我不知道.DataBindingSource 对象的属性,但有一个.DataSource属性可以设置为 null:
bindingSource.DataSource = null;
Run Code Online (Sandbox Code Playgroud)
这将释放数据的绑定源。但是,查看BindingSource.DataSource 的参考:
DataSource property List results
---------------------------- -------------------------------------------
null with DataMember set Not supported, raises ArgumentException.
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 DataMember,则无法将 DataSource 设置为 null,不会出现异常。
不幸的是,我不知道您的解决方法是否是正确的方法,但至少现在我们知道在设置 DataMember 时不能简单地绑定到 null。
| 归档时间: |
|
| 查看次数: |
3727 次 |
| 最近记录: |