我收到错误,如"类型引用无法在xaml中找到名为'Sign'的公共类型".我怎么解决它.Sign类位于同一个程序集中.
<DataTemplate DataType="{x:Type local:Sign}">
<Expander Padding="4"
IsExpanded="{Binding RelativeSource={
RelativeSource Mode=FindAncestor, AncestorType={
x:Type ListBoxItem}}, Path=IsSelected}">
<Expander.Header>
<TextBlock Text="{Binding Name}" ... />
</Expander.Header>
<DockPanel LastChildFill="True">
<Border DockPanel.Dock="Left" CornerRadius="16" BorderBrush="WhiteSmoke" Background="AliceBlue" BorderThickness="5" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Source="{Binding Icon}" Width="90" Height="90" Stretch="Fill" />
</Border>
...
</DockPanel>
</Expander>
Run Code Online (Sandbox Code Playgroud)
sme*_*lch 53
如果类型与要修改的XAML位于同一程序集中,请在导入命名空间时省略clr-namespace的程序集段.
做
xmlns:local="clr-namespace:NamespaceContainingSignClass"
Run Code Online (Sandbox Code Playgroud)
不要
xmlns:local="clr-namespace:NamespaceContainingSignClass;assembly=AssemblyContainingSignClassAndXAML"
Run Code Online (Sandbox Code Playgroud)
tnt*_*off 13
对于那些在我的船上没有得到谷歌这个错误的前1,00个结果帮助的人....在我的情况下,它与冶炼的建议完全相反:我不得不在最后添加装配信息我的xmlns声明.可能是因为我的特殊情况,我猜 - 我的datatemplate是在一个独立的resourcedictionary xaml文件中.不确定.我知道它直到我添加了汇编信息才起作用,所以对于那些在那里挣扎的人来说,这是一个重击,看看它是否有效.我不倾向于深入研究为什么,它只是做了.
Sign映射到local别名的类的命名空间:xmlns:local="clr-namespace:NamespaceContainingSignClass"Sign已标记publicSign具有无参数构造函数