C# 使用{x:Static}访问静态类中静态字段的属性

C# 使用{x:Static}访问静态类中静态字段的属性,c#,wpf,C#,Wpf,在WPF中,我试图绑定到静态类中只读字段的属性, 我已经研究了在这样的静态类中,哪一个允许绑定到const string <TextBlock Text="{x:Static A:MyConstants.SomeConstantString}" /> <TextBlock Text="{x:Static A:MyConstants.SomeReadOnlyField.StringProp}" /> 我想做的就是这样 <TextBlock Text="{x:S

在WPF中,我试图绑定到静态类中只读字段的属性, 我已经研究了在这样的静态类中,哪一个允许绑定到const string

<TextBlock Text="{x:Static A:MyConstants.SomeConstantString}" />
<TextBlock Text="{x:Static A:MyConstants.SomeReadOnlyField.StringProp}" />

我想做的就是这样

<TextBlock Text="{x:Static A:MyConstants.SomeConstantString}" />
<TextBlock Text="{x:Static A:MyConstants.SomeReadOnlyField.StringProp}" />

但这给了我一个错误

不支持嵌套类型


该错误意味着您无法使用复杂类型(readonlyfield)值(stringprop)的路径


第一个示例中的prop应该是MyConstants的属性。该错误意味着您不能使用指向复杂类型(readonlyfield)的值(stringprop)的路径


第一个示例中的prop应该是MyConstants的属性

如果
SomeReadOnlyField
是类
MyConstants
中的
公共静态只读
字段,并且该属性有一个public
StringProp
属性,您可以这样编写绑定:

Text="{Binding Path=StringProp
               Source={x:Static A:MyConstants.SomeReadOnlyField}}"

请注意,虽然绑定
路径
必须解析为公共属性的名称,但用于绑定
x:Static
标记扩展可以很好地引用静态字段。

前提是
SomeReadOnlyField
是类
MyConstants
中的
公共静态只读
字段,这是一个public
StringProp
属性,您可以这样编写绑定:

Text="{Binding Path=StringProp
               Source={x:Static A:MyConstants.SomeReadOnlyField}}"

请注意,虽然绑定
路径
必须解析为公共属性的名称,但用于绑定
x:Static
标记扩展可以很好地引用静态字段。

您不能绑定到WPF中的字段。仅在属性上不能绑定到WPF中的字段。只有在房地产上才能完美地工作谢谢