你可以嘗試使用此一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