【问题标题】:I get a DependencyProperty error if I try to customize Error Validation in Template10-Validation如果我尝试在 Template10-Validation 中自定义错误验证,则会收到 DependencyProperty 错误
【发布时间】:2017-09-29 11:53:36
【问题描述】:

我是报告此错误的新手,这可能是我的部分报告,但每当我尝试设置 DataContext={TemplateBinding Property} 时,我都会收到此错误,如模板 10 验证中的示例所示。

在将模板 10 验证应用到我自己的应用程序之前,我正在探索模板 10 验证,所以我发现这个错误很奇怪,因为我不能在 x86 上使用设计模式,我在 x64 上调试它工作正常,但我一尝试要应用自定义,它会向我显示此错误,并且在设计模式下,我会收到一个错误窗口,如屏幕截图所示:

严重性代码描述项目文件行抑制状态 错误 属性“Property”不是 DependencyProperty。要在标记中使用,非附加属性必须通过可访问的实例属性“Property”在目标类型上公开。对于附加属性,声明类型必须提供静态“GetProperty”和“SetProperty”方法。 SampleValidationTest E:\Template10\SampleValidationTest\SampleValidationTest\Views\MainPage.xaml 43

我已经修复了 VS2017,但它没有纠正它,一旦我停止自定义错误验证,Template10 验证在设计模式下的 x64 调试模式下运行良好,即使它仍然显示错误,程序构建也很好。

最奇怪的是,当我自定义此错误验证时,我的设计模式运行良好,但第二天它突然停止工作,我无法解决它。

我想我会重新安装VS2017,重新安装它让我很痛苦,因为我现在没有任何选择。

【问题讨论】:

  • 只在模板中使用
  • 你能解释一下吗?因为如果您打算在控件包装器标记的模板属性中使用它,我已经这样做了,它不会让我构建,它会引发未处理的异常,而且设计模式仍然被破坏。

标签: c# validation uwp uwp-xaml template10


【解决方案1】:

我花了几个小时试图理解这个错误,我想我发现了这个错误,当您创建模板空白、最小或汉堡包时,它带有以下默认 nuget 包:

  • Microsoft.NETCore.UniversalWindowsPlataform 5.2.3 版
  • Microsoft.Xaml.Behaviors.Uwp.Managed 1.1.0 版
  • Newtonsoft.Json 版本 9.0.1

我已将前两个分别更新为 5.3.3 和 2.0.0,当您尝试自定义验证错误时,x64 和 ARM 的设计模式工作正常。

但是如果您将 Newtonsoft.Json 更新到版本 10.0.1 或 10.0.2,设计器模式会中断,它仍然可以构建,但它会中断并显示与我发布的错误一样的不同类型的错误,现在它向我显示模板 10 标签上的错误例如或或在页眉中。

因此,只要您仅应用内联自定义,它仍然会构建,因为如果您尝试使用资源字典并尝试将其应用于 ControlWrapper 的 Template 属性,它会引发未处理的异常。 设计器模式中断,因此您将无法使用它,曲折的线条永远不会离开那里,而且那些烦人的错误也会一直显示在错误列表中。

此外,每次我更新或降级任何 nuget 包时,我都必须重新启动 VS2017 企业版,因为它没有刷新模板 10 设计器模式我不知道原因,但是一旦你重新启动 VS2017,编译器就会适当地刷新。

暂时不要从 9.0.1 升级 Newtonsoft.Json,除非您希望在没有设计师的情况下工作。

我还在 github 上发布了这个答案,以便他们尽快更正。 我认为我没有足够的水平来帮助那个 github 项目。 :(

但至少你可以在设计师正常工作的情况下以这种方式工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 2017-12-21
    • 1970-01-01
    • 2016-10-21
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多