我有一個任務管理程序,其中包含「緊急」字段。有效值爲Int16,當前映射爲1(高),2(中),3(低),4(無)和99(閉合)。緊急度字段用於對任務進行排序,並改變列表和詳細視圖中項目的外觀。如何處理C#/ WPF/MVVM中的ViewModel和數據庫應用程序
當用戶正在編輯或添加新任務時,他們選擇或查看ComboBox中的緊急程度。轉換器傳遞字符串來替換Ints。緊迫性集合非常簡單,我沒有將它作爲數據庫中的表格,而是一個ObservableCollection(Int16),它由方法填充。
由於同一屏幕可能用於查看已關閉的任務,所以「已關閉」緊急程度必須位於ItemsSource中,但我不希望用戶能夠選擇它。爲了防止用戶能夠在組合框中選擇該項目,但仍然能夠看到它,如果在數據庫中的項具有價值應該我...
- 手動ComboBox中禁用的項目在代碼或Xaml中(我懷疑它)
- 將Urgency集合從Int16更改爲帶有Selectable屬性的ComboBoxItem的isEnabled屬性綁定到的對象。
- 請在2而且在數據庫中的任務表的外鍵分開的緊迫性信息到它自己的表
- 以上(我懷疑這是正確答案)
的無我問這是因爲這是一個學習項目(我的第一個真正的WPF和第一個MVVM項目)。我知道很少有一個權方式做一些事情,但我想確保,因爲我在一個合理的方式學習,如果更難忘卻壞習慣
感謝
邁克
感謝您的反饋意見。我應該再次查看枚舉選項。我試圖做到這一點,但我有很多挑戰讓枚舉集合填充組合框。現在我對ComboBox更加舒適,所以我懷疑它會正常工作。我沒有想過報告問題,在我的打印代碼中,我使用了xaml用來獲取字符串的相同轉換器。 – 2010-03-23 04:28:12
只需注意:選項3會使Enum解決方案的吸引力降低,因爲您會再次複製這些知識。 – 2010-03-23 04:41:46