vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Klassenübergreifender Zugriff bei WPF 
Autor: Maas
Datum: 21.09.08 20:05

Hallo Leute,
Ich habe eine WPF-Anwendung mit der "Public Class Window1". In dieser Klasse gibt es z.B. die "Public Property Prop1". Jetzt will ich in einer anderen Klasse auf diese Eigenschaft zugreifen, aber es wird mir dauernd gesagt, dass diese nicht deklariert sei. Das gleiche gilt auch für Controls. In WinForms ist das kein Problem.
Wieso fukioniert das nicht in WPF? Was mache ich hier falsch?

Danke im Voraus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Klassenübergreifender Zugriff bei WPF 
Autor: ModeratorFZelle (Moderator)
Datum: 22.09.08 09:44

Die zugriffsmodifizierer funktionieren unter WPF genauso wie unter WindowsForms.

Da wirst Du einen anderen Fehler machen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Klassenübergreifender Zugriff bei WPF 
Autor: Maas
Datum: 22.09.08 11:26

An den Modifizierer hab ich auch schon gedacht. Er steht zwar in der Eigenschaftenliste nicht zur Verfügung, aber ich hab ihn per XAML für Window1 hinzugefügt(x:ClassModifier="Public"). Hat auch nichts gebracht. Wenn der Modifizierer genauso ist, wie bei WinForms müsste er ja standardmäßig auf "Friend" gestellt sein, was ich aber nicht erkennen kann.
Wäre nett wenn du das mal bei dir ausprobieren könntest. Einfach eine neue WPF-App erstellen, ein Label in das Grid ziehen, eine neue Klasse und Sub erstellen und versuchen auf das Label zuzugreifen. Im Objektbrowser steht Label1 dann unter "WpfApplication1.Window1.Label1", ist dort aber nicht anzutreffen.
Wenn es bei dir funktioniert, scheint der Fehler irgendwo in der IDE zu liegen, würde ich sagen.

Maas

Beitrag wurde zuletzt am 22.09.08 um 11:32:26 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Klassenübergreifender Zugriff bei WPF 
Autor: ModeratorFZelle (Moderator)
Datum: 22.09.08 13:50

Nein, es ist ein Fehler in deiner Herangehensweise.

Es ist absolut unüblich, ja sogar gegen jede OOP Convention, wenn du einfach so auf
die UI-Controls einer Form von aussen zugreifst.
Wenn Du das immer unter WindowsForms gemacht hast, hast du es da schon falsch gemacht.

Erzeuge in deinem Window1 ein Property, das die Daten nach aussen führt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Klassenübergreifender Zugriff bei WPF 
Autor: Maas
Datum: 22.09.08 14:07

OK. Werd ich mir merken. Zumindest bei Variablen hab ich das ja immer so gemacht(also mit Property).
Aber wie ich schon sagte, auf einmal geht es selbst mit einer Public Property nicht mehr, welche auf Daten von Window1 zurückgreift, egal ob Variable oder Control. Ich kann aus einer anderen Klasse nicht auf die Property zugreifen, nur innerhalb der Klasse Window1, was ja nicht das Ziel ist.
So langsam zweifle ich daran, was ich die letzten Monate gemacht habe...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Klassenübergreifender Zugriff bei WPF 
Autor: ModeratorFZelle (Moderator)
Datum: 22.09.08 15:32

Du bist sicher, auch diese Klasse zu benutzen ( NameSpace usw. )?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel