我正在使用带有SplitButton的ObservableCollection,并且在删除另一个元素时检测到SelectedItem已修改。
状态->收集= [A,B,C],已选择= B
操作->删除(C)
结果->集合= [A,B],已选择= A
删除代码:
Datacollection.ToList().Where(x => x.field > 5).ToList().ForEach(y => Datacollection.Remove(y));
XAML代码:
<mah:SplitButton ItemsSource="{Binding Datacollection}" SelectedItem="{Binding Selected}"/>
如果删除的项目与“选定的”不同,我希望“选定的”不会被修改。如果我使用Combobox而不是SplitButton,则不会出现此问题。
答案 0 :(得分:1)
这似乎是一个错误,请参见Fix SplitButton SelectedIndex and SelectedItem #1798
作为解决方法,您可以尝试覆盖SplitButton.SelectedIndexProperty
的默认值。
SplitButton.SelectedIndexProperty.OverrideMetadata(typeof(SplitButton), new FrameworkPropertyMetadata(-1));
将其放入一些静态构造函数中,该构造函数将被调用。另请参见Dependency property default value not being overriden。