0
好的開放式問題!代碼實踐:比較代碼隱藏中的視圖標籤?
所以我已經在我的公司中看到了這樣一段代碼。這不是最好的做法,但我看到這麼頻繁:
<RadioButton Checked="ToggleButton_OnChecked">商品標價籤 85* 38mm</RadioButton>
<RadioButton Checked="ToggleButton_OnChecked">商品標價籤 95* 38mm</RadioButton>
<RadioButton Checked="ToggleButton_OnChecked">單排40*30mm</RadioButton>
<RadioButton Checked="ToggleButton_OnChecked">雙排40*25mm</RadioButton>
所有這些都是好的,但看在事件處理程序我找到一個代碼異味:
var obj = (string)radio.Content;
PaperSizeColumns = 1;
switch (obj.Trim())
{
case "58mm":
DocumentWidth.Text = "58";
DocumentHeight.Text = "NaN";
break;
case "80mm":
DocumentWidth.Text = "80";
DocumentHeight.Text = "NaN";
break;
case "商品標價籤 85* 38mm":
DocumentWidth.Text = "85";
DocumentHeight.Text = "38";
break;
case "商品標價籤 95* 38mm":
DocumentWidth.Text = "80";
DocumentHeight.Text = "38";
break;
case "單排40*30mm":
DocumentWidth.Text = "40";
DocumentHeight.Text = "30";
break;
case "雙排40*22mm":
DocumentWidth.Text = "85";
DocumentHeight.Text = "23";
PaperSizeColumns = 2;
break;
}
我也許可以想出的原因,一打,這是餿主意。但我幾乎不能說這是一個相當不錯的快速方法,除了幾個收音機外幾乎需要零設置,而且你還是很適合去。
我在想一個更好的方法來做到這一點。我的第一個猜測是設置DataContext,但它是動態類型的,很難解決可維護性的問題。
那麼處理這件事的好方法是什麼,我可以教我的同事。因爲如果工作流程太繁重,他會忽略建議。
因爲這是工作代碼,它可能是更適合於[codereview.se] 。 –
這個_is_非常開放。你想以某種方式縮短代碼嗎?消除使用用戶看到的字符串,這很容易改變並打破開關語句?採用更多MVVM方法? @Cᴏʀʏ是正確的,但工作代碼可能更適合於代碼審查。但是你仍然想要明確你想要改進的東西。 –
我可能會去與XMLDataProvider。這將向他們介紹'適當的'數據對象或MVVM。 – tgpdyk