如何将ResourceDictionary字符串指定为switch case Constant Expression?

时间:2012-12-06 18:44:50

标签: c# wpf resourcedictionary

switch ("Case2")
        {
            case (string)Application.Current.FindResource("Case1");
                //Do Some logic
                break;
            case (string)Application.Current.FindResource("Case2");
                //Do Some logic
                break;
            case (string)Application.Current.FindResource("Case3");
                //Do Some logic
                break;
            default:
                break;
        }

我做了这个代码但它不起作用。现在我想分配从资源字典到常量表达式的字符串值((字符串)Application.Current.FindResource(“Case1”))。怎么可能,否则有什么办法吗?

1 个答案:

答案 0 :(得分:3)

这是不可能的。根据定义,constant expression compile -time常量。资源字典查找必须在运行时进行。通常的解决方案是使用一串if语句:

if ("Case2" == (string)Application.Current.FindResource("Case1"))
{
    //Do some logic
}
else if ("Case2" == (string)Application.Current.FindResource("Case2"))
{
    //Do some logic
}
else if ("Case2" == (string)Application.Current.FindResource("Case3"))
{
    //Do some logic
}