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