none
Klassen meines Projekts werden von XAML-Designer nicht gefunden RRS feed

  • Frage

  • Hi,

    Ich habe das Problem, dass ich Klassen, die ich selbst erstellt habe und in WPF nutzen will vom Designer nicht gefunden werden. Ausführen lässt sich der Code jedoch einwandfrei.

    Hier ein Beispiel

    xmlns:Converters="clr-namespace:Test.Converters"
    <Converters:RadioBooleanStringConverter x:Key="rbs" />

    Der Witz ist, dass mir der XAML-Designer im Namespace Converters den rbs sogar vorschlägt.

    Wo liegt das Problem?

    Viele Grüße

    Philipp

    Mittwoch, 11. September 2013 21:02

Antworten

  • Hi,
    Du hast die Klassen in der gleichen Assembly, in der sich auch der XAML-Code befindet. Sobald Du in dem betreffenden Projekt etwas änderst, ist die Assembly ungültig und der Designer weiß nicht, wie er das richtig auflösen soll.

    Die beste Lösung ist, solche Klassen in eine separate Assembly auszulagern und diese neu zu erstellen, wenn in deren Projekt etwas geändert wurde.

    --
    Peter

    • Als Antwort markiert PhiSch Donnerstag, 12. September 2013 21:42
    Donnerstag, 12. September 2013 05:54
  • Hallo Philipp,

    wie Peter schon geschrieben hat, ist das Problem vermutlich in den verschiedenen Assemblies zu finden.

    Hier kannst Du mehrere Abhilfen ausprobieren und die Beste für Dich wählen.

    Du machst einige Einträge in deiner AssemblyInfo in deinem Assembly:

    //The namespace Mapping 
    [assembly: System.Windows.Markup.XmlnsPrefix("http://myProject.com/components", "local")]
    [assembly: System.Windows.Markup.XmlnsDefinition("http://myProject.com/components", "Test.Converters")]
    
    xmlns:local="http://myProject.com/components"


    oder einen vollqualifizierten Verweis auf deine Assembly im Namespace selber: 

     xmlns:Converters="clr-namespace:Test.Converters;assembly=Test.Components"

    Dies sollte Dir hoffentlich etwas weiterhelfen.

    Grüße

    JP One

    • Als Antwort markiert PhiSch Donnerstag, 12. September 2013 21:42
    Donnerstag, 12. September 2013 08:53

Alle Antworten

  • Hi,
    Du hast die Klassen in der gleichen Assembly, in der sich auch der XAML-Code befindet. Sobald Du in dem betreffenden Projekt etwas änderst, ist die Assembly ungültig und der Designer weiß nicht, wie er das richtig auflösen soll.

    Die beste Lösung ist, solche Klassen in eine separate Assembly auszulagern und diese neu zu erstellen, wenn in deren Projekt etwas geändert wurde.

    --
    Peter

    • Als Antwort markiert PhiSch Donnerstag, 12. September 2013 21:42
    Donnerstag, 12. September 2013 05:54
  • Hallo Philipp,

    wie Peter schon geschrieben hat, ist das Problem vermutlich in den verschiedenen Assemblies zu finden.

    Hier kannst Du mehrere Abhilfen ausprobieren und die Beste für Dich wählen.

    Du machst einige Einträge in deiner AssemblyInfo in deinem Assembly:

    //The namespace Mapping 
    [assembly: System.Windows.Markup.XmlnsPrefix("http://myProject.com/components", "local")]
    [assembly: System.Windows.Markup.XmlnsDefinition("http://myProject.com/components", "Test.Converters")]
    
    xmlns:local="http://myProject.com/components"


    oder einen vollqualifizierten Verweis auf deine Assembly im Namespace selber: 

     xmlns:Converters="clr-namespace:Test.Converters;assembly=Test.Components"

    Dies sollte Dir hoffentlich etwas weiterhelfen.

    Grüße

    JP One

    • Als Antwort markiert PhiSch Donnerstag, 12. September 2013 21:42
    Donnerstag, 12. September 2013 08:53
  • H JP,
    es ist genau umgekehrt - nicht verschiedene Assemblies. sondern nur eine Assembly. Und diese eine Assembly wird bei einer Änderung als "nicht aktuell" gekennzeichnet.

    --
    Peter

    Donnerstag, 12. September 2013 09:08