我覺得我錯過了一些東西,但我不知道我的代碼可能有什麼問題。OnPropertyChange不更新組合框
我確實有一個帶有ListView和ComboBox的WPF MVVM應用程序。 列表框顯示包含兩個對象的對象,讓我們說我有一個列表框:
Intel <> CPU
Intel <> GPU
AMD <> CPU
和ComboBox有:
Intel
AMD
我想什麼來實現: 當我點擊Intel <> CPU
或Intel <> GPU
我希望ComboBox設置爲Intel
。
我的代碼:
<ListBox ItemsSource="{Binding Parts}" SelectedItem="{Binding Path=SelectedPart, Mode=TwoWay}" />
<ComboBox ItemsSource="{Binding Producers}" SelectedItem="{Binding Path=SelectedProducer, Mode=TwoWay}"/>
目前,當我點擊它不火OnPropertyChanged列表框項,並輸入我的方法
private Parts _selectedPart;
public Parts SelectedPart
{
get{return _selectedPart;}
set{
_selectedPart= value;
SelectedProducer = _selectedPart.Producer;
OnPropertyChanged("SelectedRealisation");
}
}
private Producers _selectedProducer;
public Producers SelectedProducer
{
get{return _selectedProducer; }
set
{ _selectedProducer= value;
OnPropertyChanged("SelectedProducers");
}
}
它設置正確(檢查與調試器)的SelectedProducer它觸發OnPropertyChanged("SelectedProducers")
但它不會將ComboBox可見選定值更新爲ListBox中當前選定的值。
'Parts'中的製作者與'Producers'中的對象是否相同?你將一些錯誤的參數傳遞給'OnPropertyChanged'。對於'SelectedProducer',參數字符串中有一個附加的s。此外,考慮將組合框綁定到「SelectedPart.Producer」。這可能更容易處理,也更直觀。 –
這是一個錯誤,因爲在實際情況下我沒有零件和製造商,但我想更清楚地解釋它。 – SirKometa