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

推荐订阅源

博客园_首页
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
aimingoo的专栏
aimingoo的专栏
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
J
Java Code Geeks
G
Google Developers Blog
N
Netflix TechBlog - Medium
Vercel News
Vercel News
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
The Blog of Author Tim Ferriss
罗磊的独立博客
GbyAI
GbyAI
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 周银辉

[转]用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