我看到一個奇怪的問題,當綁定到組合框時顯示值有時顯示空白。然而,這種情況是可重複的,並在第二次從另一個父表單打開對話時發生。如果父窗體關閉並重新打開,則第一次打開子窗口時,包含的WPF組合框將正確顯示顯示屬性。如果我然後關閉對話框並再次從同一父窗體重新啓動它,那麼即使我可以驗證ViewModel中相同的綁定屬性被擊中,ComboBox也不會顯示任何顯示值。奇怪的問題綁定到組合框,其中顯示值有時顯示爲空
<ComboBox ItemsSource="{Binding AvailableVehicles}"
SelectedValuePath="Value"
SelectedValue="{Binding SelectedVehicle, Mode=TwoWay}"
DisplayValuePath="Value.Model" />
要解釋我的視圖模型的數據結構它基本上只是一個公開的AvailableVehicles集裏面有一個對象,其類似於可空<>鍵入它封裝了一個Vehicle對象,並公開它通過一個類價值財產。每輛車都有一個模型和成本屬性。
我一直在解決這個問題的時間超過一天,我幾乎排除了一切,但這是ComboBox本身的錯誤。所以在這一點上,我希望有一個合理的解決方法,但如果有人能真正幫助指出我的代碼中的缺陷,那也會很棒。
注:
- 我一直沒能得到這個問題更簡單的單一窗口WPF例如重現。
- WinForms互操作場景,其中我有一個MDI父窗體和子窗體,其中可能是相關的情況下容納WPF UserControls。
- 如果在ItemsSource或SelectedValue綁定上將IsAsync設置爲True,則問題不再發生。
- 如果我把DisplayValuePath改成一個ItemsTemplate,並且在定義的DataTemplate中的綁定中放置了一個轉換器,我注意到傳入的值是null而不是期望的值。
有趣的是,如果我能夠解決它,我會嘗試你在測試項目中的建議並回復給你。感謝您的輸入。 – jpierson 2011-04-14 20:20:38
我想我找到了我的問題的來源,請參閱我的答案以獲取更多信息。 – jpierson 2012-08-24 14:17:58