是否可以将XAML中样式的TargetType属性设置为Generic Class?
public class Selector<T> : Control { }
然后在xaml
<Style x:TargetType="Selector">
<Setter Property="MyProperty" Value="Green" />
</Style>
这不起作用,因为Selector缺少类型参数。
答案 0 :(得分:2)
您无法绑定到像List<T>
这样的开放泛型类型,但您可以通过定义占位符类型绑定到封闭的泛型类型,如List<Person>
。
<强> C#强>:
class People : List<Person> {}
<强> XAML 强>:
<Style TargetType="{x:Type People}"> ... </Style>
更新:您需要为样式指定TargetType
或 x:Key
属性,而不是两者。
答案 1 :(得分:1)
泛型在XAML中的支持相当有限。话虽这么说,Mike Hillberg有一篇非常有趣的帖子here关于自定义标记扩展可能会有所帮助。
答案 2 :(得分:0)
我认为你使用普通的WPF,而不是Silverlight?如果我没弄错的话,你可以这样说:
<Style TargetType="{x:Type Control}" x:Key="{x:Type Control}">
</Style>