我使用 BoolToBrushConverter 将 TextBox 的 Brush 属性绑定到 UserControl 中的 IsValid 依赖属性。我的 IsValid 需要 4 个状态,因为我需要 4 个不同的画笔从转换器返回。还有另一种使用字符串的方法吗?而不是布尔,可以吗?
问问题
305 次
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 回答