2017-07-28 38 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”。 –