【发布时间】:2011-05-15 06:27:57
【问题描述】:
在 XAML 文件(WPF UserControl)中,有没有办法引用另一个类“A”中定义的内部类“B”?
public class A
{
public class B
{
}
}
类似:
<local:A.B ... />
此语法不起作用,因为“B”被解释为“A”类中名为“B”的属性。
我尝试了更多奇特的语法,例如“::”或“+”,但似乎都没有用。
我目前正在使用 Silverlight 4 和 VS2010。
提前感谢您的帮助。
【问题讨论】:
-
不,它是一个命令,但可能是。
-
我对 WPF 命令不是很熟悉,在回答这个问题时,点运算符是用来获取命令的:stackoverflow.com/questions/601393/custom-command-wpf 但是,命令是在不同的类中定义的。
-
对于业务命令,这确实是标准方法,但我这里的命令是 UI 命令,不能在我当前 UI 之外的其他上下文中重用。
-
这不是问题的直接答案,但我解决了一个非常相关的问题:我想将嵌套类实例传递给
<d:Style.DataContext>标签(完全没有d:DesignInstance标记扩展,否则 VS设计师显示错误)。然后我发现我可以指定<x:Type Type="nmspc:A+B" />,它也可以。也许这对某人有帮助。 -
.指的是一个属性;不知道为什么 XAML 也不能搜索嵌套类,但事实并非如此。 在字符串中(例如属性值)可以表示嵌套类,使用+而不是.。作为元素名称(如问题所示),+是不允许的,因为结果将不再是有效的 XML;+不是有效的名称字符。
标签: wpf xaml inner-classes nested-class