c# – OneWay绑定WinForms?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – OneWay绑定WinForms?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1450字,纯文字阅读大概需要3分钟。
内容图文
![c# – OneWay绑定WinForms?](/upload/InfoBanner/zyjiaocheng/825/40e86523ddb849b3b1c24ecdeda26f7c.jpg)
我有一个属性public MyClass MyProperty {…}的控件,其值在屏幕上显示为图形.我想通过使用Binding类将此属性绑定到程序中的任何其他MyClass(MyProperty将是this Binding构造函数中的propertyName参数,而另一个MyClass将是dataMember参数).
MyClass实现了INotifyPropertyChanged,所以在那一切都没问题.但是如果我没有在MyProperty中实现get访问器并尝试将其绑定到它,我会得到一个“无法绑定到目标控件上的属性’MyProperty’.
参数名称:PropertyName“错误.
这是否意味着我必须实现一个get访问器,即使我知道我永远不需要读取它的值,我想要一个OneWay(源到目标)绑定,即使我只是在get访问器中返回null?
我猜测Binding类使用它来比较旧值或者做一些其他内部的东西.那么,我不确定是否只返回null是一个好主意,或者最好始终保留最后一个对象分配给set访问器的副本并将其返回到get访问器中.也许我真的甚至不需要写一个get访问器而我正在做其他错误的事情.只是当我注释掉get访问器并且在我放回它时停止获取它时,我才会收到错误.
编辑:如果有任何混淆:当我说MyProperty的值在屏幕上显示为图形时,我并不是说它有一个其他代码读取并显示在屏幕上的值.没有人从MyProperty读取任何值. MyProperty的set访问器是在屏幕上绘制内容的那个,这就是循环的结束.
解决方法:
我不是100%肯定我明白你的意思,但我认为你遇到的异常源于Binding类的CheckBinding函数(反映):
if (descriptor.IsReadOnly && (this.controlUpdateMode != ControlUpdateMode.Never))
{
throw new ArgumentException(SR.GetString("ListBindingBindPropertyReadOnly", new object[] { this.propertyName }), "PropertyName");
}
因此,将Binding的ControlUpdateMode更改为ControlUpdateMode.Never可能正是您要找的
内容总结
以上是互联网集市为您收集整理的c# – OneWay绑定WinForms?全部内容,希望文章能够帮你解决c# – OneWay绑定WinForms?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。