你可以尝试使用此一IValueConverter
:
[ValueConversion(typeof (MyCoordObject), typeof (Brush))]
public class CoordToBrushConverter : ConverterExtension
{
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var coordObject= (MyCoordObject) value;
if (coordObject.X == 132) return Brushes.Red;
//define your own brushes as StaticResource or something, this won't work
return Brushes.Black;
}
public override object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
//nothing
return value;
}
}
现在你只需要找出哪些对象,你想传递给该转换器。在XAML像这样使用:
<my:CoordToBrushConverter x:key="myConverter"/>
<TextBox BackgroundBrush={Binding myObj, Converter={StaticResource myConverter}} />
如果你没有它包含坐标的对象,也许你可以使用一个MultiValueConverter并通过坐标逐个从控制?你应该玩这个,以使它可能工作。
如果你不想使用转换器,你可以随时查看一些MVVM框架,如果我没有弄错它们中的一些支持绑定方法。
检查Caliburn或MVVMLight
HTH
什么是CoordObject?这是如何设置的? – ColinE
自定义对象或对坐标的引用。 CoordObject并不存在。我会更新答案以更好地指定。 – RoelF