2

我在用户控件中有一个视图模板,如下所示

<UserControl
    x:Class="Configuration.Views.viewProfileTemplate"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    mc:Ignorable="d" 
    d:DesignHeight="300" d:DesignWidth="300">

    <Grid Background="Azure" Width="233">
        <StackPanel Height="300" HorizontalAlignment="Left" Name="stackPanel1"  VerticalAlignment="Top" Width="230">
             <TextBox Text="{Binding Path=SomeProfileText}" Margin="10" />
             <ListBox ItemsSource="{Binding Path=Profiles}" Height="70" Margin="10"/>
             <CheckBox Content="CheckBox" Height="16" Name="checkBox1" Width="175" />
         </StackPanel>
     </Grid>
</UserControl>

用户控件在 main.xaml 窗口中定义如下

<Window x:Class="Configuration.TreeUI"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:views="clr-namespace:Configuration.Views"
        xmlns:local="clr-namespace:Configuration"
        Title="TreeUI" Height="300" Width="450" WindowStyle="ToolWindow">

我尝试将模板与

<DataTemplate DataType="{x:Type local:ProfileViewModel}">
    <Views:viewProfileTemplate/>
</DataTemplate>

但编译器报告:
错误 1 ​​找不到类型“视图:viewProfileTemplate”。确认您没有丢失程序集引用并且所有引用的程序集都已构建。

我又错过了一些重要的点,但是什么?

想欠别人一大杯酒......

4

1 回答 1

0

这有两个潜在的原因:

1)如果数据模板与 不同的程序集viewProfileTemplate,则需要使 xaml 反映这一点:

  xmlns:views="clr-namespace:Configuration.Views;assembly=ViewAssembly"

请注意,这还需要将引用添加到项目中才能正常运行。

2) 如果这是设计时错误,请确保首先构建解决方案。VS 中的 WPF 设计器通常会报告有关缺少类型的错误,直到您构建一次,然后它才能正常“工作”。

于 2013-04-19T16:45:22.470 回答