Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[Silverlight] XAML, Fehler beim hinzufügen als Link
ths
myCSharp.de - Member



Dabei seit:
Beiträge: 66

Themenstarter:

[Silverlight] XAML, Fehler beim hinzufügen als Link

beantworten | zitieren | melden

Hallo,

Ich habe mir ein UserControl in WPF/XAML erstellt (Silverlight Projekt).
Dieses UserControl möchte ich gerne in 2 Projekten verwenden.
Ich habe also ein zweites Projekt angelegt, und die vorhandene XAML Datei hinzugefügt. Funktionierte auch ohne Probleme.
So, wenn ich jetzt aber versuche das UserControl als Link einzubinden bekomme ich zur Laufzeit eine Nullpointer Exception.

Durch Debuggen habe ich festgestellt, das er überhaupt keine Elemente anlegt, die in der XAML Datei definiert sind.

Kann mir jemand sagen, wie ich eine vorhandene XAML Datei in mein Projekt einbinde?
Oder hatte jemand evtl schonmal das selbe Problem?
private Nachricht | Beiträge des Benutzers
nitronic
myCSharp.de - Member

Avatar #avatar-1597.jpg


Dabei seit:
Beiträge: 354
Herkunft: Österreich

beantworten | zitieren | melden

Wie genau bindest du es ein? Zeig kurz wie du auf dein Element zugreifst.

Normalerweise legst du eigene Elemente in einer Library ab, referenzierst diese DLL, vergibst einen CLR-Namespace und greifst dann über das Präfix auf das Element zu.
.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup
private Nachricht | Beiträge des Benutzers
ths
myCSharp.de - Member



Dabei seit:
Beiträge: 66

Themenstarter:

beantworten | zitieren | melden

Ich hab es wohl ein bischen ungenau beschrieben.

Also ich moechte die Quell-Datei aus Projekt 1 in Projekt 2 einbinden. Dabei moechte ich es nicht so machen, das dieses UserControl in ein eigenes Projekt kommt, sondern ich moechte einfach nur das die Quellcode Datei in beiden Projekten vorhanden ist.

Gemacht habe ich dies, indem ich in Projekt 2 folgendes gemacht habe:

AddItem -> Existing Item.

Und wenn ich dann bei Add, As Link auswaehle dann funktioniert es nicht.

Ich weiss das es auch geht, wenn ich das UserControl in ein extra Projekt packe, aber das ist ein bischen übertrieben finde ich. Weil es sich ja nur um 1 UserControl handelt und nicht um eine Komponente.
private Nachricht | Beiträge des Benutzers
nitronic
myCSharp.de - Member

Avatar #avatar-1597.jpg


Dabei seit:
Beiträge: 354
Herkunft: Österreich

beantworten | zitieren | melden

Bekommst du einen Hinweis darauf, was genau null ist?

Ich hab das soeben ausprobiert und es funktioniert tadellos. Verweist du eventuell innerhalb deines Elementes auf andere Elemente?
.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup
private Nachricht | Beiträge des Benutzers
ths
myCSharp.de - Member



Dabei seit:
Beiträge: 66

Themenstarter:

beantworten | zitieren | melden

Es stürzt im Constructor ab. Weil ich da versuche auf das Grid zuzugreifen, das ich im XAML Code definiert habe.
(ich habe so die Vermutung, das die ganzen Objekte die ich in XAML Anlege nicht erstellt werden).
Aber im anderen Projekt mit dem selben Source Code funktioniert es.

Hast du es denn auch wirklich als Link hinzugefügt? Weil normales hinzufügen funktioniert bei mir auch...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ths am .
private Nachricht | Beiträge des Benutzers
nitronic
myCSharp.de - Member

Avatar #avatar-1597.jpg


Dabei seit:
Beiträge: 354
Herkunft: Österreich

beantworten | zitieren | melden

Ja, habe es als Link hinzugefügt.

Mein Control war jedoch sehr simple aufgebaut: 2 TextBoxen + einen Button, der lediglich eine MessageBox ausgibt. Sonstige Abhängigkeiten sind nicht gegeben.

Was habe ich gemacht:
1. Element per Link eingebunden
2. Namespace angegeben
3. Element via Präfix eingebunden und zur Anzeige gebracht

Funktioniert.

Wie sieht es bei dir mit Abhängigkeiten aus? Werden Dinge nachgeladen, die du eventuell nicht referenziert hast (da müsste normalerweise aber schon früher eine Meldung kommen).

Hast du mal ein Clean auf das Projekt gemacht und dann nochmals probiert?

Hat deine Exception eventuell eine InnerException die aussagekräftiger ist?
.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup
private Nachricht | Beiträge des Benutzers
ths
myCSharp.de - Member



Dabei seit:
Beiträge: 66

Themenstarter:

beantworten | zitieren | melden

Das gibts doch nicht.

Jetzt gehts, ich hab es einfach nochmal gemacht und beim 3. Versuch hat es dann geklappt.
Ein Clean und Rebuild und so habe ich alles vorher schon ausprobiert hat aber nichts geholfen.
Und jetzt aufmal klappt es obwohl ich nichts anders gemacht habe 8o


Danke für deine Hilfe nitronic !
private Nachricht | Beiträge des Benutzers
ths
myCSharp.de - Member



Dabei seit:
Beiträge: 66

Themenstarter:

beantworten | zitieren | melden

AAAh!!!

Ich dreh noch durch.

Hab jetzt ein wenig weitergearbeitet an Projekt1. Habe es dann geschlossen und Projekt 2 geladen. Und beim Starten wieder eine System.NullReferenceException.
Das gibts doch nicht.

Ich pack das UserControl jetzt doch in eine extra Komponente. Ist zwar mehr Aufwand, aber dafür funktioniert das auch.

Hat jemand übrigens noch so viel Ärger mit dem Silverlight Compiler?
So seltsames Verhalten, das er beim Kompilieren meckert, und kompiliert man es dann nocheinmal läuft es...
private Nachricht | Beiträge des Benutzers