1
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;
        }

私はこのコードを実行しましたが、うまくいきません。リソース辞書から取得した文字列値( (string)Application.Current.FindResource("Case1") ) を定数式に割り当てたいと思います。

4

1 に答える 1

3

それは不可能。定数式は、定義上、コンパイル時の定数です。実行時にリソース ディクショナリのルックアップが発生する必要があります。通常の解決策は、一連の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
}
于 2012-12-06T18:53:28.837 に答える