将常量绑定到radiobutton IsChecked命令参数

时间:2011-05-05 13:51:26

标签: wpf binding

我正在尝试做与此处相同的事情:

Unable to find enum type for static reference in WPF

但是我没有枚举,而是有一些字符串常量:

namespace MyProject.XYZ
{
     public class MyConstants
     {
          public const string AAA = "Type AAA";
          public const string BBB = "Type BBB";
          public const string CCC = "Type CCC";
          ...
     }
}

我有几个单选按钮,如下所示:

...
xmlns:myConstants="clr-namespace:MyProject.XYZ"
...


<RadioButton IsChecked="{Binding Path=CurrentSelection, Converter={StaticResource MyConverter}, ConverterParameter={x:Static myConstants:MyConstants
.AAA}}" />
...

但是我在命令参数方面遇到错误: 'myConstants:MyConstants.AAA'成员无效,因为它没有合格的类型名称。

我用enum完成它并且它可以工作,但我正在开发的应用程序严重依赖于这些常量。

非常感谢任何想法。

感谢。

1 个答案:

答案 0 :(得分:1)

这个答案有点晚了,但对于其他人来说这可能是一个有用的解决方案:

像这样定义类:

<Window.Resources>
  <local:MyConstants xmlns:local="clr-namespace:MyProject.XYZ" x:Key="MyConstants"/>
</Window.Resources>

和Binding一样:

{Binding Path=CurrentSelection, Converter={StaticResource MyConverter}, ConverterParameter={StaticResource MyConstants}}