无法在用户控件中引用/绑定到视图模板

时间:2013-04-19 16:37:07

标签: wpf user-controls views

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

<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找不到类型“Views:viewProfileTemplate”。验证您是否缺少程序集引用,并且已构建所有引用的程序集。

我再次错过了重要的一点,但是什么?

要欠一个人喝一大杯.....

1 个答案:

答案 0 :(得分:0)

有两个可能的原因:

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

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

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

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