0

BoolToBrushConverterを使用して、TextBoxのBrushプロパティをUserControlのIsValidDependencyプロパティにバインドします。コンバーターから戻るには4つの異なるブラシが必要なため、IsValidには4つの状態が必要です。文字列を使用する別の方法はありますか?ブール値の代わりに、それは機能しますか?

4

1 に答える 1

1

もちろん。好きなものを好きなものに変換できます。変換方法を実装するだけです。

ただし、状態の数が 4 に制限されている場合は、リファクタリングなどに関してより安全になるため、文字列の代わりにEnumを使用することをお勧めします。

そのようなものはうまくいくはずです:

internal enum State
{
    State1, State2, State3, State4
}

// ...

public void Convert(object value, ...)
{
    if (value is State)
    {
        State state = (State)value;
        switch(state)
        {
            case State.State1:
                return myBrush1;
            case State.State2:
                return myBrush2;
            case State.State3:
                return myBrush3;
            case State.State4:
                return myBrush4;
        }
    }

    return defaultBrush;
}

ところで: シナリオによっては、トリガーを使用する方がよい場合もありますが、常に可能であるとは限りません。

于 2010-10-07T09:18:39.217 に答える