为普通Object添加类似AttachedProperty的属性
2014-07-10 14:58
351 查看
为普通Object添加类似AttachedProperty的属性
周银辉
我们知道,在WPF中对应一个DependencyObject,我们很容易通过AttachedProperty来为类型附加一个属性。但对于普通的Object而言,这就不可行了。
我现在遇到这样一个问题,下面有一个继承与Object(而不是DependencyObject)的普通类:
我需要它在某些情况下具有IsKeyPerson这个属性,当这个属性为true时,界面会将名称标记为红色。但我没有办法去修改这个People的实现。如果它是DependencyObject就好了,可惜他不是。
我的展示这个People类的界面大概会写成这个样子:
具体如何实现的,下载代码:http://files.cnblogs.com/zhouyinhui/CustomAttachedPropertySln.rar
周银辉
我们知道,在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>
具体如何实现的,下载代码:http://files.cnblogs.com/zhouyinhui/CustomAttachedPropertySln.rar
相关文章推荐
- 为Asp.Net的用户控件添加类似DropDownList的下拉属性
- 隶属于普通类型(与DependencyObject和DependencyProperty相区别)的属性的绑定
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- ObjectForScripting 的类必须对 COM 可见。请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性。
- js为Object对象动态添加属性和值
- 从今天开始学习ios,入门第一天(Object-C学习笔记)自动引用计数和为类添加属性
- 给普通的view添加边框和背景 (关于layer的一些属性)
- objc_runtime给类目添加属性关联(objc_setAssociatedObject、objc_getAssociatedObject)
- VS2013中普通C++项目添加属性表后出错解决方法
- 遍历和添加json对象的属性 和 遍历普通js对象的属性
- object-c编程tips-给类对象添加属性
- 给Loader添加buttonMode(类似两个重叠按钮,如何激活底层的按钮?)属性
- Objective-C 给类别添加属性(通过@dynamic和objc_setAssociatedObject实现)
- 隶属于普通类型(与DependencyObject和DependencyProperty相区别)的属性的绑定
- c#和javascript函数的相互调用(ObjectForScripting 的类必须对 COM 可见。请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性。)
- Effective JavaScript Item 47 绝不要向Object.prototype中添加可列举的(Enumerable)属性
- js为object动态添加属性
- 为object添加属性名和值