为普通Object添加类似AttachedProperty的属性

                         为普通Object添加类似AttachedProperty的属性

                  周银辉

 

我们知道,在WPF中对应一个DependencyObject,我们很容易通过AttachedProperty来为类型附加一个属性。但对于普通的Object而言,这就不可行了。

我现在遇到这样一个问题,下面有一个继承与Object(而不是DependencyObject)的普通类:

复制代码
    public class People
    {
        public string Name
        {
            get;
            set;
        }

        public People(string name)
        {
            Name = name;
        }

        public override string ToString()
        {
            return Name;
        }
    }
}
复制代码

 

我需要它在某些情况下具有IsKeyPerson这个属性,当这个属性为true时,界面会将名称标记为红色。但我没有办法去修改这个People的实现。如果它是DependencyObject就好了,可惜他不是。

我的展示这个People类的界面大概会写成这个样子:

                <DataTemplate DataType="customAttachedProperty:People">
                    <TextBlock x:Name="TextBlock" Text="{Binding Name}"/>
                    <DataTemplate.Triggers>
                        <DataTrigger 如果IsKeyPerson为true>
                            <Setter TargetName="TextBlock" Property="Foreground" Value="Red"/>
                        </DataTrigger>
                    </DataTemplate.Triggers>
                </DataTemplate>

 

具体如何实现的,下载代码:https://files.cnblogs.com/zhouyinhui/CustomAttachedPropertySln.rar

 

 

 

posted @   周银辉  阅读(2998)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
历史上的今天:
2009-07-10 [转]VS DEBUG 小技巧
点击右上角即可分享
微信分享提示