UWP 如何用自定义附加属性实现数据绑定

2025-05-14 21:37:23

1、首先,附加属性要在单独的类内实现。为此,为了方便,我们在当前项目下,新建一个cs文件,用来存放所有的附加属性定义。

UWP 如何用自定义附加属性实现数据绑定

2、为了使得这个附加属性在垓矗梅吒xaml中,不需要再新建对象就可以直接访问,我将其声明为static静态类。在这个类内,有一个附加属性定义,Dependen艘早祓胂cyProperty。完整定义如图所示,同时要定义一对GetXXX,SetXXX,注意Get/Set格式如图,XXX表示附加属性名。Get,Set分别定义附加属性的获取和设置,第一个参数是附加对象,定义为object即可,不过我将其直接定义为RichEditBox,表示这个附加属性只能给RichEditBox用。

UWP 如何用自定义附加属性实现数据绑定

3、在附加属性的RegisterAttached,注册添加方法中,要给出属性的值类型和属性所有者。值类型:我用的string,表示用string给这个附加属性赋值;所有者:这里就是当前这个静态类。

UWP 如何用自定义附加属性实现数据绑定

4、在参数中的最后一个是PropertyMetadata,当前属性的元数据,这里可以设置属性值发生变换时的回调函数,这就是附加属性变得好用的关键。当给附加属性赋值结束后,会调用回调函数。我们可以自己写回调函数,根据属性值对控件进行操作。

UWP 如何用自定义附加属性实现数据绑定

5、在自己定义的回掉函数(SourceChanged)中,判断附加的控件类型,如果是RichEditBox,就调用代码把字符串赋值到Document当中了,中间若干流操作和转换操作,不过使用附加属性就很简单了。

UWP 如何用自定义附加属性实现数据绑定
UWP 如何用自定义附加属性实现数据绑定

6、在Xaml代码中,对于本附加属性实现,使用:命名空间前缀:静态类名.附加属性名,就可以使用附加属性了。实际效果如图,RichEditBox内容的变化使用过附加属性实现的。

UWP 如何用自定义附加属性实现数据绑定
UWP 如何用自定义附加属性实现数据绑定
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢