Stringbuilder als Item

22/03/2008 - 14:45 von MOMO | Report spam
Hallo ,

Ich habe die Folgende Methode:

[CSHARP]

public StringBuilder test (Daten text)
{

StringBuilder builder = new StringBuilder();

if (text is Name)
{
builder.Append(((Name)text).name);

}
if (text is Vorname)
{
builder.Append(((Vorname)text).vorname);

}
if (text is Adresse)
{

builder.Append( ((Adresse)text).adresse);
}
return builder;

}

[/CSHARP]


der String bUilder wird hier verwendet:

[CSHARP]

public void generateDaten ()
{

StringBuilder builder = null;

foreach ( Daten data in personlist)
{




builder = test(data );

// list ist eine Listbox unter Xaml definiert

list.Items.Add(builder.ToString();

}

}


[/CSHARP]


ich Wollte die Daten (name, vorname Und adresse) unter einen
ListboxItem auf die GUI sehen! dass heisst für einen listboxItem 1
sind alle daten(name, vorname,adresse) als Content enthalten

ich weiss es ben nicht ob sowas möglich? falls nicht was für einen
Control soll ich nehmen statt listbox um mein Ziel zu erreichen ??

danke im voraus
 

Lesen sie die antworten

#1 Alain Boss
22/03/2008 - 16:12 | Warnen spam
Ich finde deine Methode etwas umstàndlich. Wenn ich deinen Code korrekt
interpretiere leiten sowohl "Name", "Vorname" als auch "Adresse" von
"Daten" ab.

In diesem Fall würde ich eher eine Funktion z.B. String ShowDetails() in
der Basisklasse "Daten" ab implementieren (oder als abstrakt definieren)
und diese dann in den Subklassen überschreiben. Du kannst dadurch den
Code massiv vereinfachen

foreach ( Daten data in personlist)
{
String details = data.ShowDetails();
list.Items.Add(details);
}

oder du verwendest dafür von Anfang an die ToString() Methode die du in
jeder Klasse überschreibst.

foreach ( Daten data in personlist)
{
list.Items.Add(data.ToString());
}

Falls "Daten" keine Basisklasse ist, kannst du immer noch ein
gemeinsames Interface IDetails implementieren um das zu erreichen.
Nichts destotrotz finde ich Klassen wie Name und Vorname auf den ersten
Blick etwas seltsam und auch eine Klasse "Daten" sagt mir eher wenig,
zumal so ziemlich alles was du speicherst irgendwie Daten sind.

Gruss
alain


MOMO wrote:
Hallo ,

Ich habe die Folgende Methode:

[CSHARP]

public StringBuilder test (Daten text)
{

StringBuilder builder = new StringBuilder();

if (text is Name)
{
builder.Append(((Name)text).name);

}
if (text is Vorname)
{
builder.Append(((Vorname)text).vorname);

}
if (text is Adresse)
{

builder.Append( ((Adresse)text).adresse);
}
return builder;

}

[/CSHARP]


der String bUilder wird hier verwendet:

[CSHARP]

public void generateDaten ()
{

StringBuilder builder = null;

foreach ( Daten data in personlist)
{




builder = test(data );

// list ist eine Listbox unter Xaml definiert

list.Items.Add(builder.ToString();

}

}


[/CSHARP]


ich Wollte die Daten (name, vorname Und adresse) unter einen
ListboxItem auf die GUI sehen! dass heisst für einen listboxItem 1
sind alle daten(name, vorname,adresse) als Content enthalten

ich weiss es ben nicht ob sowas möglich? falls nicht was für einen
Control soll ich nehmen statt listbox um mein Ziel zu erreichen ??

danke im voraus

Ähnliche fragen