Calendar' TargetType与元素'Calendar&#39的类型不匹配。[英] Calendar' TargetType does not match type of element 'Calendar'

问题描述

下面的代码出了什么问题,它给出了异常''DatePicker'' TargetType 与元素''Calendar''的类型不匹配.

<样式 x:Key="mydate" TargetType="{x:Type DatePicker}"></风格><!--问题代码--><DataTemplate x:Key="EditingDateTemplate"><DatePicker SelectedDate="{Binding DOB}" CalendarStyle="{DynamicResource mydate}" /></DataTemplate>pre>

推荐答案

请看我对问题的评论.

因此,由于您对问题的表述不令人满意,您可能需要一些说明.XAML 的问题可能是:引发异常的代码可以是自动生成的,也可以是在您无权访问源代码的库中.不用担心:异常是传播的,无论如何您都可以跟踪它的原因(并不总是位于抛出点).

这是捕获所有异常的方法:
当我运行应用程序时出现异常抓住了如何处理?[^].

另请参阅:throw ..then ...重新抛出[^].

当在某个线程中捕获到异常时,您可以检查或输出Exception.Stack.这只是一个字符串,但您可以找到调用堆栈中的点,至少在您拥有源代码、您自己的或在构建期间自动生成的位置.您应该发布有问题的代码片段,并定位和注释与异常相关的行以及其他异常信息.不要忘记递归检查 Exception.InnerException,因为 InnerException 也是 Exception 类型,所以它可以有自己的 InnerException.

此外,您可以在调试器下运行它.实际上,您应该始终对您的运行时行为稍有顾虑,而不仅仅是在遇到异常时.

如果遇到异常,请在抛出异常之前设置一个断点.在调试运行期间,当执行暂停时,打开调试窗口"调用堆栈".检查它.您可以单击堆栈的每个成员;并且您的代码编辑器将打开适当的源代码文件(如果可用)并选择代码对应点的光标.这样,您可以跟踪导致异常抛出点的所有调用的整个历史记录.此外,您可以在所有异常处理程序上放置断点(实际上,您应该将它们保持在绝对最小值,因为异常通常在没有您帮助的情况下 propagate,但您可以添加一些用于纯粹的调试目的)并跟踪异常被抛出后的传播.

如果经过所有这些调查,您仍然无法找到解决方案,您可以将获得的信息用于一个非常有用的问题.

这些都是任何开发人员都应该具备的基本技能.
我想说,没有这些基本技术进行任何高级开发几乎没有多大意义.

—SA

看看这个MSDN 条目[^],我认为您的 typename 可能不正确.

本文地址:https://www.itbaoku.cn/post/1394744.html