Pet*_*iho 8 c# wpf xaml compiler-errors
我发现这个问题很奇怪,可能是一个XAML/Visual Studio错误.我希望其他人发现它不那么奇怪,并且解释为什么我所做的事情是错误的,和/或更好的解决方法,而不仅仅是以不同的顺序声明资源.
我有这个简单的XAML:
<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>
Run Code Online (Sandbox Code Playgroud)
当我尝试编译项目时,我收到以下错误:
1> ... MainWindow.xaml.cs(25,13,25,32):错误CS0103:当前上下文中不存在名称"InitializeComponent"
我理解错误的含义,但不是为什么会发生错误.XAML看起来很好,编译它没有错误,但由于某种原因,InitializeComponent()通常放置的自动生成的.gics文件没有被创建或使用(即使文件来自之前成功的编译,它仍然是没有编译成程序集).
如果我只是颠倒资源的顺序,它工作正常:
<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>
Run Code Online (Sandbox Code Playgroud)
附加信息:
A是我项目中的任何类.为了这个测试的目的,它被声明为class A { },即一个空类,但我首先遇到这个问题,将转换器实例放入资源.A,例如<system:String x:Key="a1">Some string</system:String>,错误不会发生.A对象和我的数组资源对象之间,它也可以正常工作!换句话说,似乎有一个或多个用户定义的类型对象作为第一个资源元素,紧接着是一个数组对象,导致编译失败.其他组合似乎工作得很好.
有人可以解释为什么这是预期的行为(除了重新安排我的资源,我应该做些什么来避免它),或者确认我认为这是XAML构建过程中的错误并不是完全疯了?
编辑:
鉴于这可能是一个真正的错误,我继续在这里打开一个Connect错误报告:https://connect.microsoft.com/VisualStudio/feedback/details/1441123/xaml-fails-to-compile-without-error -if用户自定义对象-是先资源和-随后-立即逐-X-阵列资源
另请参阅相关/类似的Stack Overflow问题:当前上下文中不存在名称"InitializeComponent":奇怪的行为
编辑#2:
WPF更新了Connect报告(参见上面的链接),声明该bug的修复程序将在下一版本的.NET中发布:
Sachin [MSFT]于2016年3月9日下午3:53发布
WPF团队已审核此问题并在下一版本的.NET中修复.我们感谢您的反馈,并考虑解决此问题 - WPF团队
WPF 团队已更新 Connect 报告(请参阅相关链接),指出该错误的修复将在下一版本的 .NET 中发布:
\n\n\n\n\n由 Sachin [MSFT] 于 2016 年 3 月 9 日下午 3:53 发布
\n
\n WPF 团队已审查此问题并在下一版本的 .NET 中修复。我们感谢您的反馈,并认为此问题已解决 \xe2\x80\x93 WPF 团队
不幸的是,微软已经停用了 Connect 站点,因此实际报告不再可用。但我在这个问题中提出的问题不应该再出现。
\n| 归档时间: |
|
| 查看次数: |
538 次 |
| 最近记录: |