惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
Docker
H
Help Net Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
C
Check Point Blog
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
M
MIT News - Artificial intelligence
B
Blog RSS Feed
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
美团技术团队
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale

博客园 - 周银辉

[转]用Whois获得电信运营商的IP地址是如何分配的? 右键添加复制路径选项 nmap报错: Failed to open device ethxxx XML中输入特殊符号 windows forms 上一个类似于wpf snoop 的工具: Hawkeye 非常棒的Visual Studo调试插件:OzCode WPF中监视DependencyProperty的变化 Swift之 ? 和 ! Swift中的willSet与didSet 快速掌握iOS API的一个小技巧 一份关于Swift语言学习资源的整理文件 自定义的事件管理器 xcode6 beta 中智能提示(自动完成)功能有时不显示的问题 开源项目导入eclipse的一般步骤 WPF Popup 控件导致被遮挡内容不刷新的原因 修改eclipse的自动完成功能 mac os 下搭建android开发环境 mac下打开FTP服务 Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime
为普通Object添加类似AttachedProperty的属性
周银辉 · 2014-07-10 · via 博客园 - 周银辉

                         为普通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