Pra*_*eek 35 wpf xaml nested-class inner-classes
在一个XAML文件(WPF用户控件),有引用一个的方式内部类 "B"在另一个类中的"A"定义的?
public class A
{
public class B
{
}
}
Run Code Online (Sandbox Code Playgroud)
就像是 :
<local:A.B ... />
Run Code Online (Sandbox Code Playgroud)
此语法不起作用,因为"B"被解释为一个名为"B"类"A"的属性.
我尝试了更多异国情调的语法,如"::"或"+",但似乎都没有.
我目前正在使用带有VS2010的Silverlight 4.
在此先感谢您的帮助.
Lud*_*ant 42
这个问题是很老了,我不知道它是否会与WPF的版本在2010年回到了工作,但现在你可以把它用"真实"(内部)嵌套式的名称工作:
<local:A+B />
Run Code Online (Sandbox Code Playgroud)
如果你曾经看过一个反汇编的代码,那就是嵌套类型的样子:
ParentTypeName+Nested
Run Code Online (Sandbox Code Playgroud)
.指财产 ; 不知道为什么XAML也不能搜索嵌套类,但不是。
嵌套类可以在字符串(例如属性值)中表示时,使用A+B代替A.B:
<Label SomeProperty1="{x:Static local:A+B.SomeProperty2}" />
Run Code Online (Sandbox Code Playgroud)
+不允许使用元素名称(如问题所示),因为结果将不再是有效的XML;+不是有效的名称字符:
XAML是XML。
XML规范-NameChar。
因此,元素名称不能直接描述嵌套类。
但是请参阅下面的UPDATE-解决此问题的替代语法。
更新
@Artfunkel对一个答案的评论,这应该是一种解决方案[我尚未测试]:
<x:Type TypeName="local:A+B"/>
Run Code Online (Sandbox Code Playgroud)
来自:https : //docs.microsoft.com/zh-cn/dotnet/framework/xaml-services/x-type-markup-extension
TBD如何使用该语法指定属性。使用x:TypeArguments?
| 归档时间: |
|
| 查看次数: |
10920 次 |
| 最近记录: |