Mahapps SplitButton在删除另一个元素的同时修改了SelectedItem

时间:2019-06-06 07:25:52

标签: c# wpf mahapps.metro

我正在使用带有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,则不会出现此问题。

1 个答案:

答案 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