C# 创建新选项卡后切换选项卡时引发System.ArgumentException
我们发现,在通过Windows Update安装.Net 4.5.1之后,引入了以下错误。我们目前的修复方案不会持续很长时间,它是卸载更新并将每个人的机器保持在.NET4.0 我们有一个WPF屏幕,用于运行和查看报告。每个报表都是一个“ReportViewModel”。视图模型的集合在一个“ReportManagerViewModel”中进行管理,该“ReportManagerViewModel”管理使用Caliburn.Micro.Conductor的选项卡集合 如果我们打开一个现有的选项卡,该选项卡将完全加载。然后,我们启动一个新选项卡,运行一个报告,将焦点转移到新选项卡并填充其数据。此选项卡现在是选项卡集合的一部分。如果尝试切换回已打开的选项卡之一,则会发生以下情况: 第一次单击(第一次单击预先存在的选项卡)不起任何作用。第二次单击导致应用程序崩溃,并出现以下错误: System.ArgumentException:已添加具有相同密钥的项 有趣的是,当切换活动选项卡时,将调用Conductor.ActivateItem()。当抛出错误时,甚至不会调用此方法 Telerik WPF使用Visual Studio 2010 Caliburn.Micro v.1.5.2控制2013年第三季度的热修复程序1424 编辑:我们现在知道Telerik不是原因,因为我们从RadTabItem切换到TabItem,并且我们没有使用Caliburn.Micro.Conductor 例外情况: 已添加具有相同密钥的项。 资料来源:mscorlib 堆栈跟踪: 在System.ThrowHelper.ThrowArgumentException(异常资源) 在System.Collections.Generic.DictionaryC# 创建新选项卡后切换选项卡时引发System.ArgumentException,c#,.net,wpf,telerik,caliburn.micro,C#,.net,Wpf,Telerik,Caliburn.micro,我们发现,在通过Windows Update安装.Net 4.5.1之后,引入了以下错误。我们目前的修复方案不会持续很长时间,它是卸载更新并将每个人的机器保持在.NET4.0 我们有一个WPF屏幕,用于运行和查看报告。每个报表都是一个“ReportViewModel”。视图模型的集合在一个“ReportManagerViewModel”中进行管理,该“ReportManagerViewModel”管理使用Caliburn.Micro.Conductor的选项卡集合 如果我们打开一个现有的选项卡,
2.Insert(TKey键、TValue值、布尔加法)
位于System.Collections.Generic.Dictionary
2..ctor(IDictionary2 Dictionary,IEqualityComparer
1比较器)
位于System.Windows.Controls.Primitives.Selector.InternalSelectedItemsStorage..ctor(InternalSelectedItemsStorage集合,IEqualityComparer`1 equalityComparer)
在System.Windows.Controls.Primitives.Selector.SelectionChanger.ApplyCanSelectMultiple()中
在System.Windows.Controls.Primitives.Selector.SelectionChanger.End()中
位于System.Windows.Controls.Primitives.Selector.SetSelectedHelper(对象项,FrameworkElement UI,布尔选定)
在System.Windows.Controls.Primitives.Selector.NotifyIsSelectedChanged(FrameworkElement容器,布尔值选定,RoutedEventArgs e)
在System.Windows.Controls.Primitives.Selector.OnSelected(对象发送器,RoutedEventArgs e)
位于System.Windows.RoutedEventHandlerInfo.InvokeHandler(对象目标,RoutedEventTargets RoutedEventTargets)
在System.Windows.EventRoute.InvokeHandlersImpl(对象源,RoutedEventArgs参数,布尔值重新调高)
位于System.Windows.UIElement.RaiseEventImpl(DependencyObject发送方,RoutedEventTargets参数)
在System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)处
在System.Windows.Controls.TabItem.OnSelected中(RoutedEventArgs e)
在System.Windows.Controls.TabItem.OnIsSelectedChanged(DependencyObject d,DependencyPropertyChangedEventArgs e)
位于System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
位于System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
位于System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs参数)
在System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex EntryIndex,DependencyProperty dp,PropertyMetadata,EffectiveValueEntry oldEntry,EffectiveValueEntry&newEntry,布尔强制WithDeferredReference,布尔强制WithCurrentValue,OperationType OperationType)
位于System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp、对象值、PropertyMetadata元数据、布尔强制WithDeferredReference、布尔强制WithCurrentValue、OperationType OperationType、布尔isInternal)
位于System.Windows.DependencyObject.SetCurrentValueInternal(DependencyProperty dp,对象值)
在System.Windows.Controls.TabItem.OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs e)中
在System.Windows.UIElement.OnPreviewGotKeyboardFocusThunk(对象发送器,KeyboardFocusChangedEventArgs e)
在System.Windows.Input.KeyboardFocusChangedEventArgs.InvokeeEventHandler(委托genericHandler,对象genericTarget)
位于System.Windows.RouteDevenTargets.InvokeHandler(委托处理程序,对象目标)
位于System.Windows.RoutedEventHandlerInfo.InvokeHandler(对象目标,RoutedEventTargets RoutedEventTargets)
在System.Windows.EventRoute.InvokeHandlersImpl(对象源,RoutedEventArgs参数,布尔值重新调高)
位于System.Windows.UIElement.RaiseEventImpl(DependencyObject发送方,RoutedEventTargets参数)
在System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs参数)处
位于System.Windows.UIElement.RaiseEvent(RoutedEventArgs,布尔可信)
在System.Windows.Input.InputManager.ProcessStaginArea()中
位于System.Windows.Input.InputManager.ProcessInput(InputEventArgs输入)
位于System.Windows.Input.KeyboardDevice.TryChangeFocus(DependencyObject newFocus、IKeyboardInputProvider keyboardInputProvider、Boolean askOld、Boolean Asknowed、Boolean forceToNullIfFailed)
在System.Windows.Input.KeyboardDevice.Focus(DependencyObject焦点、布尔askOld、布尔Asknow、布尔forceToNullIfFailed)
位于System.Windows.Input.KeyboardDevice.Focus(IIInputElement)
在System.Windows.UIElement.Focus()处
在System.Windows.Controls.TabItem.SetFocus()中
在System.Windows.Controls.TabItem.OnMouseLeftButtonDown(MouseButtonEventArgs e)中
在System.Windows.UIElement.OnMouseLeftButtonDownThunk(对象发送器,MouseButtonEventArgs e)
在System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(委托genericHandler,对象genericTarget)
位于System.Windows.RouteDevenTargets.InvokeHandler(委托处理程序,对象目标)
public override bool Equals(object obj)
{
if (obj is ExtendedButton2Content)
{
ExtendedButton2Content temp = (ExtendedButton2Content)obj;
return temp.Index == this.Index;
}
else
{
return false;
}
}
public override int GetHashCode()
{
return Index;
}