C# 如果用户定义的对象是第一个资源,紧随其后的是x:Array资源,则XAML无法编译,但没有任何错误消息
我发现这个问题非常奇怪,可能是XAML/VisualStudio的错误。我希望其他人能发现它不那么奇怪,并能解释为什么我所做的是错误的,和/或更好的解决方法,而不仅仅是以不同的顺序声明资源 我有一个简单的XAML:C# 如果用户定义的对象是第一个资源,紧随其后的是x:Array资源,则XAML无法编译,但没有任何错误消息,c#,wpf,xaml,compiler-errors,C#,Wpf,Xaml,Compiler Errors,我发现这个问题非常奇怪,可能是XAML/VisualStudio的错误。我希望其他人能发现它不那么奇怪,并能解释为什么我所做的是错误的,和/或更好的解决方法,而不仅仅是以不同的顺序声明资源 我有一个简单的XAML: <Window x:Class="TestSOAskArrayXaml.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="
<Window x:Class="TestSOAskArrayXaml.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:TestSOAskArrayXaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:A x:Key="a1"/>
<x:Array x:Key="listBoxItems" Type="{x:Type system:Double}">
<system:Double>0.25</system:Double>
</x:Array>
</Window.Resources>
<Grid/>
</Window>
其他信息:
是我项目中的任何类。在本测试中,它被声明为A
,即空类,但我首先遇到了将转换器实例放入资源中的问题类A{}
- 如果我使用内置类型而不是
,例如a
,则不会发生错误Some string
- 如果我将内置类型的对象作为资源放置在用户定义类型
对象和数组资源对象之间,它也可以正常工作李>a
有人能解释一下为什么这是预期的行为(除了重新安排我的资源之外,我应该做些什么来避免它),或者确认我没有完全疯狂地认为这是XAML构建过程中的一个bug吗
编辑: 考虑到这可能是一个实际的bug,我在这里打开了一个Connect bug报告:
另请参阅相关/类似的堆栈溢出问题:WPF团队已更新了Connect报告(请参阅相关链接),声明将在下一版本的.NET中发布该错误的修复程序: 由Sachin[MSFT]于2016年3月9日下午3:53发布
WPF团队已经审查了这个问题,并在下一版本的.NET中修复了这个问题。我们感谢您的反馈,并考虑这个问题解决- WPF团队
不幸的是,Microsoft已停用Connect站点,因此实际报告不再可用。但是我在这个问题中提出的问题不应该再出现了。这真的很有趣,以前也提出过类似的问题,典型的答案不适用于这个场景。也许唯一的选择是“不要那样做”,但这并不能真正解释原因。@KevinNacios:谢谢!我做了我认为是对细节的彻底搜索,但没有注意到这个问题(我想我错过了,因为它没有)。我同意这几乎是完全相同的情况,但一个答案似乎并没有解决这两个问题(为什么答案会被选上还不清楚……我想这一定帮助了遇到这个问题的其他人)。我在另一个问题上加了一条评论,希望如果有人最终提供了一个真正的答案,他们会顺便来这里写一条关于这个问题的说明。:)
<Window.Resources>
<x:Array x:Key="listBoxItems" Type="{x:Type system:Double}">
<system:Double>0.25</system:Double>
</x:Array>
<local:A x:Key="a1"/>
</Window.Resources>