2011-11-04 91 views
1

在我的應用程序中,我有一個組合框。它用作一個項目,一個名稱(字符串)和一個ID(int)WPF(c#)組合框更新選定的顯示項目

我已經寫了一些代碼來更新顯示的內容,因爲我更改了項目的值。

((Item)(joinedFilesCombobox.SelectedItem)).PictureID = 0; 
       joinedFilesCombobox.Items.Refresh(); 

有了這個代碼,當我在組合框的下拉圖標點擊,我的項目是正確更新列表中,但不是當前選擇的項目。爲了正確地刷新當前顯示的項目,我只是修改,我必須做一個小竅門:

int curr = joinedFilesCombobox.SelectedIndex; 
       joinedFilesCombobox.SelectedIndex = curr+1; 
       joinedFilesCombobox.SelectedIndex = curr; 

這樣做更新當前所選項目的視圖。

但是這個解決方案並不乾淨。有沒有更乾淨的方法來做到這一點?

+0

只是所以我理解這個權利,你在做什麼是你有一個組合框,然後當你改變選擇的項目在組合框中的數據顯示在列表框或類似的東西? – Purplegoldfish

+0

組合框由顯示的項目和單擊右箭頭時彈出的列表組成。當我修改一個項目時,它在列表中的顯示會被refresh()更新,但是如果它是當前選擇的項目,它在框中的顯示不會刷新。它更清楚嗎? – djfoxmccloud

回答

3

爲了正常工作,您的Item應該實現INotifyPropertyChanged接口並在PictureID屬性的setter中提升PropertyChanged事件。

+0

謝謝,這個技巧! – djfoxmccloud