【发布时间】:2012-06-21 06:41:18
【问题描述】:
我有以下结构:
public static class Constants {
public static class Foo {
public static string Bar {
get {
//Constants.Foo.Bar == "FooBar"
return "FooBar";
}
}
}
}
我想将此绑定到用户控件中的按钮。
<Button Content="{Binding Source={x:Static ns:Constants.Foo.Bar}}" />
(其中 ns 指向定义“常量”的程序集和命名空间)。
这会导致两个错误:
- “找不到类型 'Constants.Foo'。请注意,类型名称区分大小写。”
- “找不到类型 'ns:Constants.Foo'。”
我也试过了:
<Button Content="{Binding Source={x:Static ns:Constants+Foo.Bar}}" />
这会导致一个错误:
- “未找到类型 'ns:Constants+Foo'。”
是否可以在静态类中绑定到静态类中的静态属性?如果是,怎么做?
【问题讨论】:
-
您是否还会在此之前包含命名空间
Constants+Foo.Bar?喜欢[namespace].Constants+Foo.Bar -
不,但我认为不需要(resharper 删除了命名空间)。测试 1、2...:添加它没有帮助,同样的错误(“未找到”),但现在包括命名空间。
-
如果您可以将
public static class Constants更改为namespace Constants,它会起作用。这是一个选择吗? -
这需要一些重构,但这是一种选择。