2017-07-28 151 views
0

當我使用ComboBox或每個時間有運行時間和期間也ItemsSourceSelectedItem屬性綁定則每次在初始結合其他控件關閉變爲`SelectedItem`時所結合的收集到ItemsSource變更我遇到綁定SelectedItem對象的內容被改變。WPF控件,當結合屬性`ItemsSource`改變

如何禁用此功能?

例如:

我有<ComboBox MinWidth="300" ItemsSource="{Binding AvailableMasters}" SelectedItem="{Binding SelectedMaster}">

當運行SelectedMaster屬性在AvailableMasters分配的第一個項目中的應用。此外,每次AvailableMasters集合更改(例如,通過將新集合分配給屬性),SelectedMaster都會再次進行調整。

期望的行爲是SelectedItemSelectedMaster)僅填充/改變時,最終用戶與該項目的鼠標點擊從ComboBox或其它控制/選擇該項目。

+0

您是否在SelectedItem屬性上嘗試了OneWayToSource綁定? – Clemens

+0

如果您只想在開始使用綁定模式時只設置一次。稍後,選擇只會在用戶選擇時發生變化。你確定你選擇的主人不會改變可用的主人嗎?如果是這種情況,不要提高可用主人的財產變更事件,直到不需要。 – Ramankingdom

+0

@Ramankingdom,恐怕你可能誤解了。我不希望SelectedItem在綁定到ItemsSource的屬性發生更改時不會受到影響。 –

回答

1

在更新集合並在SelectedMaster屬性中使用它之前,設置一個標誌/布爾屬性。或者你只需​​要XAML解決方案?

+0

這可能是最後的解決方案。我使用mvvm,因此我可以很容易地在綁定屬性中設置這樣的標誌 –

+0

我選擇了您的答案,因爲它允許在雙向綁定方面具有更大的靈活性,而不是限制綁定到「OneWayToSource」。 –