2013-09-26 67 views
1

我在這裏遺忘了什麼?DataContextChanged事件不會因更改而被解僱

<ComboBox ItemsSource="{Binding MyList} SelectionChanged="Selector_OnSelectionChanged"/> 
<TextBlock Text="{Binding SelectedItem}"/> 
<MyControl DataContext="{Binding SelectedItem}" /> 

更改selectedItem會更新testBlock,但不會觸發我控件中的DataContextChanged事件。它確實在第一次選擇時觸發了事件,但沒有進行任何後續選擇。

+0

你能提供更多的信息嗎?你的視圖模型是什麼樣的?什麼是MyList對象?你如何選擇從組合框中選擇什麼值等等...... –

+0

Mylist有什麼對象?字符串?他們獨一無二嗎? – Nitin

+0

我的猜測是您必須實現INotifyPropertyChanged,以便在SelectedItem中發生更改時,界面「接收」該更改。 – sexta13

回答

0

我要回答我自己的問題在這裏記錄。我應該問一個新的問題,因爲我仍然fl。不樂。

我是有這個問題,是因爲我在我的OnDataContextChanged處理程序如下:

DataContext = dependencyPropertyChangedEventArgs.NewValue; 

這顯然是多餘的,因爲DataContext的已被設置(它是一個粗略的一週)。刪除這條線路解決了這個問題。但是,爲什麼這會導致任何問題,我仍然不知所措。

+0

我遇到過類似的問題。有關更多解釋,請參見[我的答案](http://stackoverflow.com/a/5797150/)。 –