HandyControl
HandyControl copied to clipboard
[Feature request]TabControl中的TabItem点击“关闭其它”是否可以跳过不能关闭的Tab继续关闭其它Tab?
在TabItem点击关闭其它,当遇到不可关闭的Tab时会停止,不会继续关闭后面的Tab,是否可以跳过这个页面继续关闭其它Tab? 在/src/Shared/HandyControl_Shared/Controls/TabControl/TabPanel.cs文件中的第398行,把return替换成continue
internal void CloseOtherItems(TabItem currentItem)
{
var actualItem = currentItem != null ? ItemContainerGenerator.ItemFromContainer(currentItem) : null;
var list = GetActualList();
if (list == null) return;
IsInternalAction = true;
for (var i = 0; i < Items.Count; i++)
{
var item = list[i];
if (!Equals(item, actualItem) && item != null)
{
var argsClosing = new CancelRoutedEventArgs(TabItem.ClosingEvent, item);
if (ItemContainerGenerator.ContainerFromItem(item) is not TabItem tabItem) continue;
tabItem.RaiseEvent(argsClosing);
if (argsClosing.Cancel) return; // 把这里替换成continue
tabItem.RaiseEvent(new RoutedEventArgs(TabItem.ClosedEvent, item));
list.Remove(item);
i--;
}
}
SetCurrentValue(SelectedIndexProperty, Items.Count == 0 ? -1 : 0);
}