【发布时间】:2011-11-15 23:55:27
【问题描述】:
我有一个具有以下绑定的 ItemsControl:
ItemsControl ItemsSource="{Binding SelectedItems}
集合中有 10 个 SelectedItem,每个都有一个带有此绑定的 Combo Box:
ComboBox ItemsSource="{Binding SelectableItems}
当 SelectableItem 被选中时,SelectedItems ObservableCollection 会更新。然后,我希望禁用 SelectableItem,因此无法在任何其他组合框中选择它。
SelectableItem 的数量不等于 SelectedItem 的数量。
我在 ComboBoxItem 上有以下样式:
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="IsEnabled" Value="{Binding IsSelectable}"/>
</Style>
这在启动时工作正常 - 但问题是因为我正在更新 SelectedItems ObservableCollection,我没有更新 SelectableItems 集合..
有什么东西(LINQ?)我可以放入 SelectedItem.PropertyChanged 事件中以更新 SelectableItems 集合中的相关项目 - 类似于:
public void SelectedItemObservableCollectionPropertyChanged(object sender, PropertyChangedEventArgs e)
{
OnPropertyChanged("SelectableItem.IsSelectable");
}
如果不是,最好的解决方法是什么?
【问题讨论】:
标签: wpf xaml mvvm observablecollection