如果控件中的数据绑定源对象是控件的名称范围内定义的元素,则基于.NET Framework 4.0 的 WPF 应用程序崩溃

文章翻译 文章翻译
文章编号: 2461678 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

请考虑以下情形:
  • 您可以与 Microsoft.NET Framework 4.0 基于 Windows Presentation Foundation (WPF) 应用程序。
  • 在 WPF 应用程序的控件中的数据绑定源对象是该控件的名称范围之外定义的元素。
  • 通过使用 WPF 应用程序的用户界面中执行某些操作。在执行这些操作之后,从可视化树中删除该绑定的目标对象和垃圾回收回收目标元素。下一步布局处理过程中应用程序启动之前,发生此问题。
在这种情况下,发生ArgumentNullException异常,而且 WPF 应用程序崩溃。如果调试应用程序时,您会收到以下错误消息和"更多信息"一节所述的调用堆栈:
值不能为空

原因

因为空参数返回由 WPF 应用程序,它重新评估数据绑定控件中的时,会出现此问题。

解决方案

热修复补丁程序信息

现在可以从 Microsoft 获得支持的修补程序。但是,它被用于解决本文中描述的问题。它仅适用于正经历此特定问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

要立即解决此问题,请联系 Microsoft 客户支持服务,以获取此修复程序。Microsoft 客户支持服务的电话号码和关于支持费用的信息的完整列表,请访问以下 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
注意在特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新将解决您的问题,可能会取消免收支持电话的费用。到其他支持问题和事项,不需要进行特定的更新将正常收取支持费用。

注意您还可以从以下连接的 Microsoft 网站下载此修补程序:
http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=33315

先决条件

若要应用此修补程序,您必须安装了.NET Framework 4.0。

重新启动要求

不需要重新启动计算机后,如果没有使用受影响的文件应用修补程序。

修补程序替换信息

此修补程序不替代任何其他修补程序。

文件信息

此修补程序的英文版具有的文件属性 (或更新的文件属性) 下表中列出。协调世界时 (UTC) 中列出了这些文件的日期和时间。当您查看文件信息时,它已转换为当地时间。若要了解 UTC 与本地时间之间的时差,请使用 时区 在选项卡 日期和时间 在控制面板中的项。
支持所有基于 x86 的版本的 Windows XP、 Windows Server 2003 的、 Windows Vista、 Windows Server 2008 的、 Windows 7 的和 Windows Server 2008 R2 的 x
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台
Presentationframework.dll4.0.30319.3956,347,1122010 年 11 月 24 日08: 21x86
支持所有基于 x64 版本的 Windows XP、 Windows Server 2003 的、 Windows Vista、 Windows Server 2008 的、 Windows 7 的和 Windows Server 2008 R2 的 x
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台
Presentationframework.dll4.0.30319.3956,347,1122010 年 11 月 24 日08: 21x64

状态

Microsoft已经确认这是列出的 Microsoft 产品中的问题在"适用于"部分中。

更多信息

调用堆栈信息
at MS.Internal.Data.ElementObjectRef.GetObject(DependencyObject d, ObjectRefArgs args)
at MS.Internal.Data.ObjectRef.GetDataObject(DependencyObject d, ObjectRefArgs args)
at System.Windows.Data.BindingExpression.MS.Internal.Data.IDataBindEngineClient.VerifySourceReference(Boolean lastChance)
at MS.Internal.Data.DataBindEngine.Task.Run(Boolean lastChance)
at MS.Internal.Data.DataBindEngine.Run(Object arg)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)

属性

文章编号: 2461678 - 最后修改: 2012年10月7日 - 修订: 5.0
这篇文章中的信息适用于:
  • Microsoft .NET Framework 4.0
关键字:?
kbqfe kbfix kbhotfixserver kbexpertiseadvanced kbsurveynew atdownload kbmt KB2461678 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 2461678
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com