为普通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>
具体如何实现的,下载代码:http://files.cnblogs.com/zhouyinhui/CustomAttachedPropertySln.rar