0

我有这个 XAML:

<UserControl x:Class="M_Cubed.Controls.TagEditor"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:classes="clr-namespace:M_Cubed.Classes">
    <UserControl.Resources>
        <DataTemplate DataType="{x:Type classes:TagEditorPic}">
            <ComboBox DataContext="{StaticResource PicTypes}"
                ItemsSource="{Binding}"/>
        </DataTemplate>
    </UserControl.Resources>
</UserControl>

我有这个 C#:

namespace M_Cubed.Classes
{
     public class TagEditorPic : INotifyPropertyChanged
     {
          public TagEditorPic() { }
     }
}

我得到这个错误:

类型引用找不到名为“TagEditorPic”的公共类型。

有什么建议么?

4

4 回答 4

1

这是因为您没有实现 INotifyPropertyChanged。如果你实现它,那么你的控件将编译。

它找不到控件,因为它首先无法编译 TagEditorPic 类。由于这不是一个可行的类,XAML 解析器不知道该做什么。

于 2009-02-21T00:25:53.590 回答
0

根据您的 Visual Studio 版本,您可能会得到陈旧的程序集。

尝试运行 Build -> Clean Solution,然后 Rebuild Solution。

如果这不起作用,请尝试重新启动 Visual Studio。

于 2009-02-21T01:01:28.823 回答
0

我决定只在数据模板上设置 x:Key 属性,然后将模板属性向前绑定到 x:Key 的 StaticResource。它对我很好。

于 2009-02-21T01:43:06.510 回答
0

TagEditorPic在同一个程序集中吗?否则,您需要像这样指定它:

xmlns:classes="clr-namespace:M_Cubed.Classes;assembly=myassembly"
于 2009-02-23T14:48:08.757 回答