[英]Type reference cannot find public type named
我在 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>
如果該類型與您正在修改的 XAML 位於同一程序集中,請在導入命名空間時省略 clr-namespace 的程序集段。
做
xmlns:local="clr-namespace:NamespaceContainingSignClass"
不要
xmlns:local="clr-namespace:NamespaceContainingSignClass;assembly=AssemblyContainingSignClassAndXAML"
對於那些在我的船上沒有得到谷歌上這個錯誤的前 1,00 個結果幫助的人......在我的情況下,這與 smelch 的建議完全相反:我必須在最后添加裝配信息我的 xmlns 聲明。 可能是因為我的特殊情況,我猜 - 我的數據模板在一個獨立的資源字典 xaml 文件中。 不確定。 我只知道它在我添加組裝信息之前不起作用,所以對於那些在那里掙扎的人來說,看看它是否有效。 我不想深入探討原因,它就是這么做的。
Sign
映射到local
別名的命名空間: xmlns:local="clr-namespace:NamespaceContainingSignClass"
Sign
是否標記為public
Sign
是否具有無參數構造函數我剛剛發現了另一個問題,這可能會導致這個問題。 允許在項目名稱中使用點,例如
FancyTrainsimTools.Desktop
是有效的項目名稱。 如果你在項目中使用文件夾,你可能會得到這樣的結構:
FancyTrainsimTools.Desktop.Logic
如果您定義引用此文件夾中項目的數據模板,則會產生錯誤消息。 我還使用了分層數據模板,但這給出的消息略有不同。
解決方法:
通過刪除點重命名您的項目:
FancyTrainsimToolsDesktop
編輯:我嘗試再次重現這個問題,以便報告一個錯誤,但現在一切正常......所以謎團尚未解決,不清楚如何創建工作......
現在遇到了這個錯誤。 問題是我從我的程序集中引用的類位於具有更高框架級別(4.7.2 對 4.6)的程序集中。 版本對齊解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.