【发布时间】:2014-03-05 10:13:12
【问题描述】:
基本上,我有一个系统,我的数据网格用新的背景颜色标记已更改的单元格,为此,我在包含这些属性的对象中有一个方法,该方法接收一个字符串,该字符串是属性的名称进行检查,然后是一个 switch 语句,该语句使用该字符串来检查正确的属性。
public Color HasChanged(string value)
{
switch (value)
{
case "CILRef":
if (_localShipment.cilRef != _originalShipment.cilRef)
{
return Colors.SkyBlue;
}
else
{
return Colors.White;
}
case "ArrivedAtPortDate":
if (_localShipment.arrivedAtPortDate != _originalShipment.arrivedAtPortDate)
{
return Colors.SkyBlue;
}
else
{
return Colors.White;
}
}
}
为简洁起见,我删除了其余属性。
现在我有一种烦人的感觉,即有一种更简洁的方式来处理这个字符串>属性,而不使用 switch 语句,但我一生都无法在谷歌上找到任何东西,如果没有一些关键字就很难搜索到继续。
我还试图只保存那些已更改的属性,我打算将任何更改的属性名称放入一个数组中,然后使用另一个检查该数组的 switch 语句进行循环,然后保存正确的属性.然而,这对我来说又显得不整洁。
有没有更简洁的解决方案,希望可以处理添加新属性而无需向 switch 语句添加新代码。
如果需要,我可以包含执行此检查的其余代码(即数据网格上的 WPF 绑定,以及使用属性名称作为字符串参数调用检查方法的转换器)。
【问题讨论】:
-
@James -- 在 OP 中:“为简洁起见,我删除了其余属性。”
标签: c# wpf switch-statement