Designer拒绝DataTemplate.DataType

时间:2009-05-16 20:43:56

标签: wpf datatemplate

我尝试将一些WPF放入我当前的Windows窗体应用程序中。当我使用这个简单的用户控件时,该控件的设计者不会重新加载。

这只发生在这个应用程序中。如果我制作一个干净的Windows窗体项目,添加这些文件,设计师工作正常。

我尝试重新加载Visual Studio,并清理/重建应用程序。

有什么想法吗? (这些是ListBox中的项目,因此x:Key不是一个选项。)

P.S。如何摆脱代码清单中的所有尾随空白行?

详情:

MyClasses.cs

namespace MyNamespace {
  internal class MyClassInternal {}
  public class MyClassPublic {}
}

MyUserControl.xaml

<UserControl x:Class="MyNamespace.MyUserControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:MyNamespace"         
    Height="300" Width="300">

    <UserControl.Resources>
        <DataTemplate DataType="{x:Type local:MyClassInternal}"/> <!--OK-->

        <ObjectDataProvider x:Key="ClassPublicKey" ObjectType="{x:Type local:MyClassPublic}"/> <!--OK--> 

        <!-- Type reference cannot find public type named 'MyClassPublic' -->
       <DataTemplate DataType="{x:Type local:MyClassPublic}"/> <!--FAILS-->
    </UserControl.Resources>

    <TextBlock>Hello World</TextBlock>
</UserControl>

MyUserControl.xaml.cs

using System.Windows.Controls;

namespace MyNamespace {
    public partial class MyUserControl :UserControl {
        public MyUserControl() {
            InitializeComponent();
        }
    }
}

1 个答案:

答案 0 :(得分:2)

这是因为在程序集名称中有一个空格。