簡體   English   中英

類型引用找不到命名的公共類型

[英]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 文件中。 不確定。 我只知道它在我添加組裝信息之前不起作用,所以對於那些在那里掙扎的人來說,看看它是否有效。 我不想深入探討原因,它就是這么做的。

  1. 檢查 xaml 文件的根標記是否具有類Sign映射到local別名的命名空間: xmlns:local="clr-namespace:NamespaceContainingSignClass"
  2. 檢查類Sign是否標記為public
  3. 檢查類Sign是否具有無參數構造函數
  1. 仔細檢查這個問題的所有答案 - 我確定其中一個是正確的,但我不知道哪個對我有用。
  2. 保存項目,關閉 Visual Studio,重新打開 Visual Studio。
  3. 瞧,它現在神奇地起作用了,盡管沒有改變任何東西。
  4. 低聲對微軟發誓,繼續你的生活......

我剛剛發現了另一個問題,這可能會導致這個問題。 允許在項目名稱中使用點,例如

FancyTrainsimTools.Desktop

是有效的項目名稱。 如果你在項目中使用文件夾,你可能會得到這樣的結構:

FancyTrainsimTools.Desktop.Logic

如果您定義引用此文件夾中項目的數據模板,則會產生錯誤消息。 我還使用了分層數據模板,但這給出的消息略有不同。

解決方法:

通過刪除點重命名您的項目:

FancyTrainsimToolsDesktop

編輯:我嘗試再次重現這個問題,以便報告一個錯誤,但現在一切正常......所以謎團尚未解決,不清楚如何創建工作......

現在遇到了這個錯誤。 問題是我從我的程序集中引用的類位於具有更高框架級別(4.7.2 對 4.6)的程序集中。 版本對齊解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM