如果我尝试在 Template10-Validation 中自定义错误验证,我会收到 DependencyProperty 错误
I get a DependencyProperty error if I try to customize Error Validation in Template10-Validation
我是报告此错误的新手,这可能是我的一份笨拙的报告,但每当我尝试设置 DataContext={TemplateBinding 属性} 时,我都会收到此错误,如模板 10 验证中的示例。
我正在探索模板 10 验证,然后将它应用到我自己的应用程序,所以我发现这个错误很奇怪,因为我不能在 x86 上使用设计模式,我在 x64 上调试,它工作正常,但一旦我尝试应用自定义,它向我显示此错误,而在设计模式下,我收到一个错误 window,如屏幕截图所示:
严重性代码说明项目文件行抑制状态
错误 属性 "Property" 不是依赖关系 属性。要在标记中使用,非附加属性必须在具有可访问实例 属性 "Property" 的目标类型上公开。对于附加属性,声明类型必须提供静态 "GetProperty" 和 "SetProperty" 方法。 SampleValidationTest E:\Template10\SampleValidationTest\SampleValidationTest\Views\MainPage.xaml 43
我修复了 VS2017 但它没有更正它,一旦我停止自定义错误验证,Template10 验证在设计模式下的 x64 调试模式下运行良好,程序构建也很好,甚至认为它仍然显示错误。
最奇怪的是,我的设计模式在我定制这个错误验证时工作正常,但第二天突然停止工作,我一直无法解决它。
我想我会重新安装 VS2017,重新安装它让我很痛苦,我现在似乎没有任何选择。
我花了最后几个小时试图理解这个错误,我想我发现了这个错误,当你创建一个模板空白、最小或 Hamburguer 时,它带有默认的 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 标签上,例如 or 或 at pageheader。
因此,只要您仅应用内联自定义,它仍会构建,因为如果您尝试使用资源字典并尝试将其应用于 ControlWrapper 中的模板 属性,它会引发未处理的异常。
设计器模式中断,因此您将无法使用它,波浪线永远不会离开,并且那些烦人的错误会不断显示在错误列表中。
此外,每次我更新或降级任何 nuget 包时,我都必须重新启动 VS2017 企业版,因为它没有刷新模板 10 设计器模式我不知道原因,但是一旦你重新启动 VS2017,编译器就会适当地刷新。
暂时不要从 9.0.1 升级 Newtonsoft.Json,除非您希望在没有设计器的情况下工作。
我还在 github 上发布了这个答案,以便他们尽快更正。
我不认为我有足够的水平来帮助那个 github 项目。 :(
但至少你可以在设计师正常工作的情况下以这种方式工作。
我是报告此错误的新手,这可能是我的一份笨拙的报告,但每当我尝试设置 DataContext={TemplateBinding 属性} 时,我都会收到此错误,如模板 10 验证中的示例。
我正在探索模板 10 验证,然后将它应用到我自己的应用程序,所以我发现这个错误很奇怪,因为我不能在 x86 上使用设计模式,我在 x64 上调试,它工作正常,但一旦我尝试应用自定义,它向我显示此错误,而在设计模式下,我收到一个错误 window,如屏幕截图所示:
严重性代码说明项目文件行抑制状态 错误 属性 "Property" 不是依赖关系 属性。要在标记中使用,非附加属性必须在具有可访问实例 属性 "Property" 的目标类型上公开。对于附加属性,声明类型必须提供静态 "GetProperty" 和 "SetProperty" 方法。 SampleValidationTest E:\Template10\SampleValidationTest\SampleValidationTest\Views\MainPage.xaml 43
我修复了 VS2017 但它没有更正它,一旦我停止自定义错误验证,Template10 验证在设计模式下的 x64 调试模式下运行良好,程序构建也很好,甚至认为它仍然显示错误。
最奇怪的是,我的设计模式在我定制这个错误验证时工作正常,但第二天突然停止工作,我一直无法解决它。
我想我会重新安装 VS2017,重新安装它让我很痛苦,我现在似乎没有任何选择。
我花了最后几个小时试图理解这个错误,我想我发现了这个错误,当你创建一个模板空白、最小或 Hamburguer 时,它带有默认的 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 标签上,例如 or 或 at pageheader。
因此,只要您仅应用内联自定义,它仍会构建,因为如果您尝试使用资源字典并尝试将其应用于 ControlWrapper 中的模板 属性,它会引发未处理的异常。 设计器模式中断,因此您将无法使用它,波浪线永远不会离开,并且那些烦人的错误会不断显示在错误列表中。
此外,每次我更新或降级任何 nuget 包时,我都必须重新启动 VS2017 企业版,因为它没有刷新模板 10 设计器模式我不知道原因,但是一旦你重新启动 VS2017,编译器就会适当地刷新。
暂时不要从 9.0.1 升级 Newtonsoft.Json,除非您希望在没有设计器的情况下工作。
我还在 github 上发布了这个答案,以便他们尽快更正。 我不认为我有足够的水平来帮助那个 github 项目。 :(
但至少你可以在设计师正常工作的情况下以这种方式工作。