我们正在将SL5+RIA服务转换为WPF前端和WCF服务作为临时解决方案。到目前为止,我们已经成功地将所有SL组件和库调整为相应的WPF。但是,我们已经到了Visual抛出一系列构建错误的时候,我们不了解这些错误的起源。
旧的SL解决方案与VS 2015 14.0.25431.01保持一致。它使用SL5和.NET 4.0。在完全清除了解决方案之后,它也正确地构建了。新的WPF解决方案是由VS 2019 16.11.15和使用.NET 4.8。
我们在一些用户控件上遇到的3个错误是
XDG0036 "Key“属性只能用于"IDictionary”中包含的元素。此错误指向xaml代码的第1行,这是用户控件本身。
<UserControl
x:Class="Inspectieprogramma.UserControls.DetailsInspfreq"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:converters="clr-namespace:Inspectieprogramma.Converters"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmdExtras="http://www.galasoft.ch/mvvmlight"
xmlns:helpers="clr-namespace:Inspectieprogramma.Helpers"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
>
XDG0040属性"Resources“只能设置一次。此错误指向资源标记的开始,但只有一个资源声明。
<UserControl ...>
<UserControl.DataContext>
<Binding Path="Inspectieprogramma" Source="{StaticResource Locator}" />
</UserControl.DataContext>
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Inspectieprogramma;component/Styles/RadDatetimePickerStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
...
<DataTemplate/>, <ControleTemplate/> and <Style/> definitions
...
</UserControl.Resources>
<Border>
// All contents
</Border>
</UserControl>
XDG0047指定的值不能赋值。预期的类型如下:"ResourceDictionary“。与XDG0036一样,此错误再次指向代码的第1行。
艾曼纽尔
发布于 2022-06-02 09:55:00
您需要将DataTemplate、ControleTemplate和样式定义放置在声明的ResourceDictionary中,而不仅仅是在UserControl.Resources标记中:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Inspectieprogramma;component/Styles/RadDatetimePickerStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
...
DataTemplate, ControleTemplate and Style definitions
...
</ResourceDictionary>
</UserControl.Resources>
https://stackoverflow.com/questions/72472767
复制相似问题