在WPF中为嵌套类声明一个Style的TargetType

3

我有一个MyClass类。
我声明

<Style TargetType="local:MyClass"></Style>

没问题。
我有一个公共类 MyClass.MyNestedClass
我该如何声明...?
2个回答

7
您需要使用加号(+)来分隔嵌套类名和外部类名:
<Style TargetType="local:MyClass+MyNestedClass"></Style>

1
请注意,这可能会破坏您的设计师界面。已知存在一个与此有关的错误:http://connect.microsoft.com/VisualStudio/feedback/details/361509/xaml-designer-cannot-handle-typename-with-nested-classes - cplotts
@cplotts,这个链接已经失效。您知道这个bug是否仍然存在于最新的Visual Studio版本中吗? - Crono
@Crono 我不知道。我的建议是尝试一下,看看设计师是否会出问题。 - cplotts

0

据我所知,在XAML中无法声明嵌套类,因为这会干扰Xaml解析逻辑,该逻辑假定点符号表示属性。


你所说的(即无法声明/实例化嵌套类)是正确的...尽管这不是发帖者在他的问题中所问的。对于那些想要了解有关如何在XAML中无法实例化嵌套类的MSDN参考资料的读者,请访问:http://msdn.microsoft.com/en-us/library/ms753379.aspx - cplotts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接