目前在我的應用程序中,單擊網格行時,我使用網格行條目填充頁面的控件。我有一個UPDATE按鈕來保存更改。但即使不修改任何控制值並單擊更新按鈕,更新也將使用相同的值完成。觸發記錄表的條目。如何避免表單條目未更改時更新
如何使窗體調用更新僅當控件的值不同於正在加載到他們時,我單擊網格。
更新: 應用程序未使用任何模式,如MVVM。除了用戶界面之外,所遵循的結構對於贏取表單來說非常不利。用於數據庫交互ADO.net。它已經建立,當我加入這個項目&即使我是新來的wpf。
任何人都可以幫我嗎?
目前在我的應用程序中,單擊網格行時,我使用網格行條目填充頁面的控件。我有一個UPDATE按鈕來保存更改。但即使不修改任何控制值並單擊更新按鈕,更新也將使用相同的值完成。觸發記錄表的條目。如何避免表單條目未更改時更新
如何使窗體調用更新僅當控件的值不同於正在加載到他們時,我單擊網格。
更新: 應用程序未使用任何模式,如MVVM。除了用戶界面之外,所遵循的結構對於贏取表單來說非常不利。用於數據庫交互ADO.net。它已經建立,當我加入這個項目&即使我是新來的wpf。
任何人都可以幫我嗎?
我相信最簡單的方法是爲控件添加一個處理程序,用於獲取用戶輸入,它將設置一些布爾屬性e.d. RowWasEdited,爲true。然後在UPDATE按鈕單擊事件上檢查此屬性,執行必要的操作並將其設置爲false。
但我確定有比這更優雅的東西。
您的解決方案將工作,但仍然「聞起來」一點。我認爲最好跟蹤業務實體本身的變化,而不是在表單上保留一個私有布爾值來檢查更新。 –
我認爲你需要對網格中顯示的實體進行一些更改跟蹤。無論何時執行更新,您都會檢查實體的狀態,並只更新需要的實體。基本上你需要在Property Setters的層面進行攔截,以跟蹤實體的變化。想想:
這個有些有益的理論可能是:
Change tracking on businees objects
Using Properties C# programming guide
ADO.NET Self Tracking Entities
我不從你的問題知道的耦合是用戶界面之間的緊密和數據庫(ADO.NET DataTables左右......)。上面提出的想法需要一些「解耦」的東西。但是,對於您的應用程序中的其他功能來說,它是一個很好的基礎,並且可以爲您提供一些便利的工作,清晰的框架,改進的維護並可能提高性能
您使用的是MVVM這樣的模式嗎?請解釋你的應用程序的設計。 –
你有GridView綁定的ItemsSource嗎? –
我有數據網格的項目源。但我不更新網格中的條目。我加載DEM來分離像文本框,組合框等控制 –