我對WPF比較陌生,想知道是否有人可以幫助我。WPF Datagrid更新分組後編輯/更新
我有一個collectionview,它包含一個可存儲所有項目的observablecollection列表。我的datagrid的項目源是集合視圖。我有簡單的分組數據網格XAML ...
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" FontWeight="Bold" Padding="3"/>
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</DataGrid.GroupStyle>
現在...添加/刪除項目工作得很好,但是每當我更新/編輯不會更新組的項目。比方說,例如,項目按城市分組,如果我在一個城市名稱「西雅圖」下有3個項目,則將其中一個城市名稱更改爲「布魯克林」,將「布魯克林」城市保留在西雅圖組下,直到我重新填充可觀察收藏列表。
我目前的工作是...每當一個城市發生變化時,我會逐字清理並重新填充我的observablecollectionlist以供組更新...必須有更好的方法!
我的問題是,有沒有辦法更新數據網格組,手動/動態每當我更新/編輯項目?
注意 INotifyPropertyChanged的,我90%肯定是不是這裏的問題,我已經嘗試了組合的所有方式與這個接口,每當我編輯/更新項目組將不會更新。然而,每當我添加一個項目,如果它是一個新的城市,將創建一個新的組,如果我刪除了城市中的所有項目,該城市組也將被刪除。此外,它不只是具體的項目,其任何項目欄。
編輯好的,仍然沒有解決方案...但我發現了另一個工作,這再次不是最優雅的。我爲City Box設置了一個事件處理程序..所以每當城市改變時,事件處理程序被調用,並且我刷新collectionview。然而,當我添加一個項目時會調用該事件,當我點擊該項目時被調用,並且每當我進行更改時調用兩次,所以它不是每個都有效。仍然在尋找想法。
EDIT2我現在尋找到了BeginEdit和IEditableObject的EndEdit中,看看這會給我什麼,我需要
任何幫助,不勝感激,謝謝!
你介意張貼代碼的解決方案。我想知道是否可以通過將事件屬性Handled設置爲true來將通話級聯調到您的TextChanged事件。 – ouflak
我認爲你需要在文本框「的GotFocus」事件我不知道一個標誌,如果這是正確的事件。但是,如果標誌爲真,則只要文本框處於焦點狀態,就不會在文本更改事件中處理任何內容。但是,一旦文本框失去焦點,你可以檢查更改或做任何事情。 –