ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
182
182
EMPFEHLEN
-
10.08.10 10:22 #1besy Tutorials.de Gastzugang
Hallo,
ich habe mir ein englischsprachiges WPF Buch zugelegt und scheinbar eines erwischt was schon einiges an Programmierkenntniss vorraussetzt. Immer wieder muss ich Sachen goggeln auf die im Buch gar nicht näher eingegangen wird, weil wohl selbstverständlich.
Nun hänge ich aber im Kapitel "DataBinding" fest und hoffe ihr könnt mir helfen. Ich poste das hier, weil obwohl es um WPF geht ist das Problem eher anderer Natur
Im Buch wird folgendes verlangt, ohne jede weitere Erklärung:
Nachdem ich erstmal geschaut habe was Properties überhaupt sind, habe ich folgendes gemacht:I have created a Person object with FirstName and LastName public properties. There is also a public property called Address of type Address which has Street, City and State properties.
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
public class Person { private string firstName; private string lastName; public FirstName { get { return firstName; } set { firstName = value; } } public LastName { get { return lastName; } set { lastName = value; } } }
Das geht soweit auch. Was mir Probleme macht ist die Adresse. Wie erstelle ich eine Property die ihrerseits wieder mehrere Properties hat ? Ich komm da nicht dahinter...
lg
-
Hallo besy,
ich denke, das damit eine Struktur gemeint, die die Adressdaten aufnimmt und diese dann als Property bereitstellt.
Properties benötigen immer auch einen Typ. Den hattest du bei LastName und FirstName vergessen.
Da du wahrscheinlich mit einer aktuellen .NET-Version arbeitest, kannst du dir Schreibarbeit sparen, indem du die sog. automatischen Properties verwendest. Man braucht dann nicht mehr extra Membervariablen anzulegen.
Hier das Beispiel:
GrußCode csharp:1 2 3 4 5 6 7 8 9 10 11 12 13
public class Person { public string FirstName { get; set; } public string LastName { get; set; } public Address Address { get; set; } public struct Address { public string street; public string city; public string state; } }
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
10.08.10 12:02 #3besy Tutorials.de Gastzugang
Hallo,
danke für die Antwort.
Hab das mal so versucht, das struct musste ich umbennen weil er mich 2mal "Address" nicht benutzen lassen wollte (als struct Name und als Property) aber das müsste ja egal sein, hab es einfach mal "Data" genannt.:
Initialisiert hab ichs dann so:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
public partial class Window1 : Window { public Window1() { InitializeComponent(); Person p1 = new Person(); p1.FirstName = "Lara"; p1.LastName = "H."; Person.Data address = new Person.Data(); address.City = "weit weg"; address.State = "noch weiter weg"; address.Street = "ganz weit weg"; p1.Address = address; this.DataContext = p1; //Das hab ich auch ewig gesucht... } }
Ich muss ja erst ein Struct erstellen, weil die Property Address ja jetzt nur ein ganzes struct erwartet und zurückgibt, die einzelnen Werte wollte er mich nicht einzelnen setzen lassen.
Das DataBinding klappt nun für FirstName und LastName, bei der Adresse aber leider nicht. Im Buch bindet er 3 Textboxen jeweils an Address.Street, Address.City und Address.State, geht das für mich jetzt überhaupt ? Weil die Property gibt ja nur das ganze struct zurück.
-
Ja stimmt, bei Strukturen bekommt man einen Fehler CS1612. Wenn du aber stattdessen eine Unterklasse verwendest, geht es:
GrußCode csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
public class Person { public Person() { Address = new Data(); } public string FirstName { get; set; } public string LastName { get; set; } public Data Address { get; set; } public class Data { public string street; public string city; public string state; } } ... Person p = new Person(); p.FirstName = "A"; p.LastName = "B"; p.Address.street = "abc"; p.Address.city = "city"; p.Address.state = "state";
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
Ähnliche Themen
-
Properties lesen via XML
Von takidoso im Forum JavaAntworten: 2Letzter Beitrag: 14.11.09, 22:44 -
testvar has no properties..
Von Geflügel im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 24.08.07, 03:19 -
Java Properties
Von Nick0110 im Forum JavaAntworten: 1Letzter Beitrag: 11.08.07, 17:41 -
Stack voll! "Properties properties = new Properties ();"
Von stephan r. im Forum .NET ArchivAntworten: 0Letzter Beitrag: 13.10.04, 10:36 -
Properties?
Von basuhexe im Forum JavaAntworten: 11Letzter Beitrag: 27.05.04, 12:14





Zitieren


Login




