WPF 利用附加属性创建FreezableCollection集合和反射实现控件参数以MVVM模式传递

导读:本篇文章讲解 WPF 利用附加属性创建FreezableCollection集合和反射实现控件参数以MVVM模式传递,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

本文中的例子本质上就是利用附加属性传递附加对象,并在观察者模式中使用反射技术实现指定名称的事件参数传递。

本文中框架任然有很多问题,目前来说是勉强能用,有可以修改的地方尽管说!

 

我们知道附加属性可以随意在控件上使用。

创建附加属性时写DependencyProperty的这一部分 ,并且需要使用Set__方法和Get__方法,其实不必要全部写出也是可以,甚至都可以不用RegisterAttached方法。

因为xaml其实读取Set__方法和Get__方法,包括依赖属性(其实可以使用只读模式)哦,但是使用dependencyproperty这样注册是可以触发属性值变化的方法,同时也会省去某些麻烦的地方。

所以,我们就可以得到一个只读的附加属性和一个触发源。

不过剩下后续触发的问题就会很严重了,

假如: A类是附加属性,之中只读值为B类型,接受一个触发源,并且B类型中也会有一个C类型,B类型会把反射事件的参数传递到C类中。

如此编写代码,是可以运行,并且是可以触发,不过,C类在XAML是没有办法写绑定的。

 

所以我们要变换一种方式,

在XAML有一个FreezableCollection集合是可以完美让子元素使用绑定,不过子元素是必须继承Animatable类。

 

不过我们有了集合,虽然可以直接在集合的某个某个时刻进行设置反射,但是有些浪费,所以编写一个框架? 或者一个观察者模式

 WPF  利用附加属性创建FreezableCollection集合和反射实现控件参数以MVVM模式传递

 

 

 

截图

WPF  利用附加属性创建FreezableCollection集合和反射实现控件参数以MVVM模式传递

 

更多 直接下载代码

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/12603.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!