我是wpf的新手,我需要使用WPF DataGrid,它的ItemSource設置爲Model的ObservableCollection,其中Model實現IDataErrorInfo類。 我面臨的問題是,如果模型返回任何屬性的驗證字符串,則用戶無法退出單元格的編輯模式,我試過回滾&我甚至嘗試過CancelEdit,但是我無法退出編輯模式。我在msdn上搜索,我發現它的DataGrid屬性之一,但我需要做一些相同的應用程序的要求。取消在WPF DataGrid中的編輯模式,即使驗證觸發
我的模型類:
public class Model: IDataErrorInfo
{
public int PropertyName{ get; set; }
// other properties & methods removed for clarity
public string this[columnName]
{
get
{
if (PropertyName< 0)
return "Error Message";
else
return string.Empty;
}
}
}
現在如果「屬性名」小於0,用戶不能離開特定小區的編輯模式。
This link on msdn說,在「備註」是
數據網格將不會退出單元格編輯模式,直到驗證 錯誤得到解決。
即使驗證返回錯誤消息,是否有任何解決方法可以退出單元格編輯模式?我無法幫助代碼架構,因爲我被DataGrid以及'Model'類困住了。任何幫助將不勝感激,非常感謝。
如果您更改單元格返回到上一個有效狀態用戶如何得到通知他做錯了什麼。他可能會一直重複在單元格中設置-1,但它總是會變回0.(如果0是編輯前的當前值)。你真的想要這個嗎? –
基本上它是我的應用程序需求的一小部分..有一個錯誤列表,用戶選擇一個錯誤,焦點自動轉到該元素,現在如果用戶選擇網格中的其他錯誤,焦點不會改變,因爲舊的錯誤不是固定的,但我希望焦點更改爲新的選定錯誤,並且網格不允許更改編輯元素。 (我正在使用WPF工具包網格)。如果舊錯誤得到解決,我能夠改變焦點。 – rmagon
但是你永遠不會添加任何項目到錯誤列表中,因爲在離開單元格之前需要首先修復單元格中的錯誤。所以又是什麼意思。告訴我們更多信息爲什麼你這樣做。也許我們會爲你找到更好的建議。你正在談論的名單永遠不會被填補。 –