基本上,我有一個系統,我的datagrid標記已經改變了新的背景顏色的單元格,爲此我在包含這些屬性的對象中有一個方法它接收一個字符串,它是要檢查的屬性的名稱,然後是一個switch語句,它接受該字符串以檢查正確的屬性。替換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綁定,以及調用帶有屬性名稱的檢查方法作爲字符串參數的轉換器)。
@詹姆斯 - 在OP:「我已經刪除屬性爲休息簡潔。「 –