首页 新闻 会员 周边

WPF 为什么普通类的属性需要定义get方法,否则的话在xaml中绑定属性失败

0
[已解决问题] 解决于 2015-06-16 23:00

如题:

C#有自动属性的概念,可以直接声明1个属性,不写set and get,C#编译器会自动给你加上一个私有属性,生成该属性的set and get,但是在wpf中不写get的话,却不能实现如上的描述,绑定1个字段的时候就会提示不能绑定,从而编译报错,加上get就好了,这是为什么呢?

Thirty的主页 Thirty | 菜鸟二级 | 园豆:252
提问于:2014-08-23 00:40
< >
分享
最佳答案
0

你好, xaml绑定属性必须是类的公共属性,  不能绑定到类的公共字段. 详细内容可以参考 http://msdn.microsoft.com/zh-cn/library/ms743643(v=vs.110).aspx#classes

奖励园豆:5
jpss | 菜鸟二级 |园豆:265 | 2014-08-23 09:35
其他回答(2)
0

自动属性也是有get的吧…

Firen | 园豆:5385 (大侠五级) | 2014-08-23 06:06
0

如果一个属性只是get的或只是set的,当然必须实现get或set。

如果对get和set同时实现又没有特殊处理要求,是不需要实现的。

 

你说的设个问题是不存在的,因为我写过wpf,直接绑定 没有get和set体的属性。当然这个绑定是畸形的,因为本身不具备真正的WPF绑定特性,只有第一次有效。

 

要使得属性能在WPF中绑定,这个属性最好是依赖属性(DependencyProperty),这样,系统才回进行很多内置的操作,也会处理变更事件。

此时,定义的成员属性必须去读取或写入这个依赖属性的值,也就意味着要写get和set体了。

519740105 | 园豆:5810 (大侠五级) | 2014-08-23 09:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册