爲普通Object添加相似AttachedProperty的屬性ide
周銀輝ui
咱們知道,在WPF中對應一個DependencyObject,咱們很容易經過AttachedProperty來爲類型附加一個屬性。但對於普通的Object而言,這就不可行了。spa
我如今遇到這樣一個問題,下面有一個繼承與Object(而不是DependencyObject)的普通類:code
public class People { public string Name { get; set; } public People(string name) { Name = name; } public override string ToString() { return Name; } } }
我須要它在某些狀況下具備IsKeyPerson這個屬性,當這個屬性爲true時,界面會將名稱標記爲紅色。但我沒有辦法去修改這個People的實現。若是它是DependencyObject就行了,惋惜他不是。blog
個人展現這個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.rarget