我在WPF中创建了这个usercontrol
<UserControl x:Class="WpfApp1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<UserControl.Template>
<ControlTemplate TargetType="{x:Type local:UserControl1}">
<Grid x:Name="LayoutRoot" Background="White" Margin="7,7,7,0">
</Grid>
</ControlTemplate>
</UserControl.Template>
当我编译它时,我收到以下错误。
&#39;的UserControl1&#39; ControlTemplate TargetType与模板类型&#39; UserControl&#39;。
不匹配但是当我调试应用程序时,它工作正常。
这个错误是什么意思?我该如何解决?
答案 0 :(得分:3)
错误最有可能只在您打开XAML编辑器时出现,对吗?这是因为它是XAML Designer问题,而不是WPF或.NET问题。这就是为什么它在运行时工作正常,但在Visual Studio中显示错误。
我遇到了类似的问题,因为XAML Designer也不支持ControlTemplates上的多态(模板&#39; TargetType =&#34;基类&#34;,但是应用于派生类) - 但这也适用于运行时。
主要解决方法是不使用XAML定义自定义控件。而是创建模板化控件,其中模板由外部样式资源选择。有关详细信息,请参阅http://mrbool.com/how-to-create-a-custom-control-in-xaml-and-c/26447。