爲什麼此選定的值綁定工作?我在這裏完全困惑。當我加載頁面時,第一個文本框正確顯示'SelectedComponentAnalysisViewModel.ReacEffectViewModel.Note.NoteID'的內容,在本例中爲'20'。WPF Binding Confusion,組合框試圖在加載值之前更改所選值?
應該發生什麼事情是當頁面第一次加載時,組合框應該有預選ID 20的註釋。
但是,組合框和第二個文本框都是空的(但是音符列表已填充)。只要我選擇了一個條目,第二個組合框就會使用新選擇的註釋ID進行更新。
這隻發生在頁面第一次加載時。只要我選擇一個不同的SelectedComponentAnalysisViewModel,它一切正常,並在組合框中自動選擇適當的值。
我唯一的猜測是,組合框在填充之前試圖綁定到選定的值。有沒有辦法迫使它等待它填充綁定?或者至少在它被填充後嘗試綁定?或者,也許正在發生,並且正在嘗試加載其數據源之前加載?但如果是這樣的話,那麼我會期望第一個文本框是空的。
(文本框就在那裏幫我調試這個)
<ComboBox x:Name="ReactionEffectNoteSelector" ItemTemplate="{DynamicResource DataTemplate1}" ItemsSource="{Binding NoteViewModelList}" SelectedValuePath="NoteID" SelectedValue="{Binding SelectedComponentAnalysisViewModel.ReacEffectViewModel.Note.NoteID, Mode=OneWay}">
<ComboBox.Resources>
<DataTemplate x:Key="DataTemplate1">
<TextBlock TextWrapping="Wrap" Text="{Binding NoteID, Mode=OneWay}"/>
</DataTemplate>
</ComboBox.Resources>
</ComboBox>
<TextBlock HorizontalAlignment="Right" Text="{Binding SelectedComponentAnalysisViewModel.ReacEffectViewModel.Note.NoteID}"/>
<TextBlock HorizontalAlignment="Right" Text="{Binding SelectedValue, ElementName=ReactionEffectNoteSelector, Mode=OneWay}"/>
不幸的是,這不是問題。問題是我使用NHibernate的一切。因此,列表中的音符實際上並不等於組件分析中的音符,因爲NHibernate使用所有這些代理。但NoteID是獨一無二的,所以我比較這些。 SelectedValuePath設置爲NoteID,因爲在事物的組合框一側它綁定到一個Notes列表,我需要NoteID。我不相信SelectedValuePath對綁定路徑有任何影響。 我對它進行了測試以確認,如果我進行了更改,所選值將全部停止工作,而不僅僅是在頁面加載時。 – Justin 2010-09-04 01:24:27