hinzufügen eines benutzerdefinierten namespace in xaml
Ich bin ganz neu auf C#, WPF und XAML, so dass ich vielleicht nicht in der Lage sein, die richtigen Bedingungen, um die richtigen Fragen stellt =)
Ich bin versucht, meine eigenen namespace zu meiner xaml-Datei um meine eigene Klasse leicht -ich denke, der Grund dafür ist-
Ich schrieb den folgenden code im Fenster tag:
xmlns:myns="clr-namespace:LibNameSpace"
Wo mein Fenster tag beginnt mit der folgenden definition:
< Window x:Class="LibNameSpace.MainWindow"
Ich will das LibNameSpace:Class1
Klasse, und ich hoffte, zu schreiben myns:Class1
. Jedoch, dass der Befehl bewirkt, dass dieser Fehler:
Undefined " CLR-namespace. Die "clr-namespace' URI bezieht sich auf ein namespace 'LibNameSpace", die nicht in der assembly enthalten.
Wie kann ich dieses Problem beheben?
InformationsquelleAutor cemregoksu | 2010-07-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Namen LibNameSpace klingt wie Ihr eine Bibliothek in einer anderen assembly. Wenn dies der Fall ist, müssen Sie den Namen der assembly:
Update:
Den Namen der assembly finden Sie im Projekt-explorer in die propeties-Bildschirm des Projektes (von der Bibliothek-Montage). Im Allgemeinen auch der Datei-name der dll ohne die
dll
-suffix steht der name der assembly.Jeder andere Vorschlag/ Idee/ Hilfe??
ich fürchte, es funktioniert nicht, wenn ich Schreibe xmlns:myns="clr-namespace:LibNameSpace;assembly=LibNameSpace"
Hat Ihr Baugruppennamen keine Leerzeichen enthalten? Sollten Sie einen Unterstrich für Leerzeichen, denke ich.
es ist komisch, dass wenn ich zu schreiben versucht, den vollen Namen wie "clr-namespace..." von hand, es hat nicht funktioniert, aber wenn ich nahm nur den namespace aus der intellisense-Liste, hat es geklappt... danke für die Hilfe=)
InformationsquelleAutor HCL
Weil für mich ist es nicht wirklich klar, was Sie tun möchten, hier ein weiterer Versuch:
Wenn
MyLibAssembly
ist die Haupt-namespace der Anwendung und es in Sie ein Fenster mit dem NamenMainWindow
und eine Klasse mit dem NamenClass1
dass Sie instanziieren möchten in IhremMainWindow
-Klasse:Fehler, muss das Projekt
kompilieren ohne Fehler. Entfernen Sie zuerst die
- namespace-Deklaration aus dem xaml-Code und kompilieren Sie Ihre
Projekt, bis Sie keine Kompilierungsfehler.
hat ein paramterless Konstruktor
Ihre MainWindow ist auch in der
MyLibAssembly
-namcespace.xmlns:local="clr-namespace:LibNameSpace
in Ihrem xaml.
local
ist in der Regelverwendet, um zu deklarieren, die denselben namespace, wie Ihre aktuelle element, in deinem Fall das Fenster, in.
Class1
mit der<local:Class1/>
-Tags in der xaml-Code. Wenn Class1 nicht der Ableitung von FrameworkElement oder eine übergeordnete Steuerung, müssen Sie es hinzufügen, in der Ressourcen-Abschnitt des Fensters. Wenn das wahr ist, geben Sie ihm einen Schlüssel.<local:Class1 x:Key="KeyToYourClass"/>
Vielleicht vs out-of-sync. Klicken Sie im Projektmappen-explorer auf den root-Knoten Saubere Lösung und dann Rebuild Solution. Vielleicht hilft das.
Ich hoffe, das half. Wenn nicht, versuchen zu formatieren Sie Ihre Frage (verwenden Sie den code-symbol, um die Frage besser zu Lesen und versuchen zu formulieren, um mehr klar, was dein Wunsch ist).
InformationsquelleAutor HCL
Intellisense Verwenden. In meinem Fall ein Raum ankam. statt
Ich von hand eingegeben
Beachten Sie das Leerzeichen nach
';'
. Dies machte den Unterschied. So verwenden Sie visual studio, Intellisense, und es wird machen Sie richtige xaml-markup.InformationsquelleAutor gopal
Fand ich diese Antwort, während ich kämpfte mit Problemen in der Windows 8. Ich habe versucht, verwenden Sie eine Benutzer-Steuerelement, und ich hatte mehrere Fehler. Die letzten wo:
und:
ScrollControl ist mein user control.
Ich landete ersetzen Sie diese:
:
Ich hoffe, dies spart die Zeit, die ich verbracht mit diesem Problem.
InformationsquelleAutor Tiago Almeida