24

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>

4

6 に答える 6

66

変更する XAML と同じアセンブリに型が存在する場合は、名前空間をインポートするときに clr-namespace のアセンブリ セグメントを省略します。

行う

xmlns:local="clr-namespace:NamespaceContainingSignClass"

しない

xmlns:local="clr-namespace:NamespaceContainingSignClass;assembly=AssemblyContainingSignClassAndXAML"
于 2013-04-16T18:25:46.100 に答える
13

Google でこのエラーの上位 1,00 の結果に助けられなかった私のボートの人々のために....私の場合、smelch からのアドバイスとは正反対でした:最後にアセンブリ情報を追加する必要がありました私のxmlns宣言の。おそらく私の特定の状況が原因だと思います-私のデータテンプレートはスタンドアロンのresourcedictionary xamlファイルにありました。わからない。アセンブリ情報を追加するまで機能しなかったことはわかっているので、そこに苦労している人は、それを試して、機能するかどうかを確認してください. 理由を詳しく説明するつもりはありません。

于 2013-11-20T16:46:25.247 に答える
8
  1. xamlファイルのルートタグに、クラスがエイリアスSignにマップされた名前空間があるかどうかを確認します。localxmlns:local="clr-namespace:NamespaceContainingSignClass"
  2. クラスSignがマークされているかどうかを確認しますpublic
  3. クラスSignにパラメーターなしのコンストラクターがあるかどうかを確認します
于 2012-05-04T07:17:41.730 に答える