引用'值'传递给转换器的集合
本文关键字:转换器 集合 引用 | 更新日期: 2023-09-27 18:12:07
我很抱歉问一个非常基本的问题,但我正在努力在xaml页面背后的代码转换器。该转换器将根据数据元素中的值更改背景颜色。我知道我想要的数据元素是可用的,因为当我在执行转换器时中断调试时,我想要的值在"value"中。从VS2013的直接窗口,我显示"值"的内容,得到这个:
{VehicleTracks.ViewModels.vehicleViewModel}
base: {VehicleTracks.ViewModels.vehicleViewModel}
purchasedate: {7/14/2014 12:00:00 AM}
PurchaseDate: {7/14/2014 12:00:00 AM}
VehColor: "Chartreuse"
VehicleBitMap: null
vehiclebitmap: null
vehiclecolor: "Chartreuse"
vehiclemodel: "Algo"
vehmake: "Test Vehicle"
VehMake: "Test Vehicle"
VehType: "Auto"
vehtype: "Auto"
vehyear: "1908"
VehYear: "1908"
元素"VehType"是我想要的。我想根据它的值来改变背景颜色。您可以看到,在本例中它被设置为"Auto"。以下是我的转换器代码的适用部分:
public sealed class ValueToColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
SolidColorBrush blueBrush = new SolidColorBrush(Windows.UI.Colors.Blue);
if (value[VehType] == "Auto")
{
return blueBrush;
}
else
{
SolidColorBrush greenBrush = new SolidColorBrush(Windows.UI.Colors.Green);
return greenBrush;
}
}
我现在在那里的引用,值[VehType]没有得到它。我需要什么?
你在那里滥用了索引器,这里有一篇文章可以帮助解释:在c#中使用索引器
你不能直接转换成VehicleTracks.ViewModels.vehicleViewModel
吗?
using VehicleTracks.ViewModels;
// -----
var viewModel = (vehicleViewModel) value;
if (viewModel.VehType == "Auto")
{
return blueBrush;
}