vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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

C# Ecke
ObjectWrapper kopieren 
Autor: IdC#
Datum: 07.05.12 13:29

Hey,

vielleicht kann mir jemand weiterhelfen. Ich habe einen ObjectContainer ...
class ObjectWrapper
{
    public ListItemWrapper(object basis)
    {
      this.basis = basis;
    }
 
    object basis;
 
    public object Basis
    {
      get
      {
        return this.basis;
      }
    }
 
    public override bool Equals(object obj)
    {
      return basis.Equals(obj);
    }
 
    public bool Equals(ObjectWrapper obj)
    {
      return base.Equals(obj);
    }
 
    public override int GetHashCode()
    {
      return basis.GetHashCode();
    }
 
    public override string ToString()
    {
      // Die Funktion uebersetze ist hier als Platzhalter zu sehen.
      // Es ist ja nur ein rudimentärer Auszug der Klasse.
      return uebersetze(basis.ToString());
    }
}
... diesen Benutze ich um den Text zu übersetzen der durch einen ToString()-Aufruf zurückgegeben wird. Das ist nützlich wenn man z.B. in eine ComboBox nicht Strings zu der Auflistung hinzufügen
will sondern eine komplettes Objekt. Die ComboBox ruft dann intern die ToString()-Funktion des Objektes auf. Das fange ich ab indem ich das Objekt vorher in den ObjectWrapper packe und dann erst
der ComboBox hinzufüge (Funktioniert auch für ListBoxen, CheckedListBoxen, ...). Jetzt aber zu meinem eigentlichen Problem^^. Wählt man in der ComboBox ein Item aus und will im Quelltext mit SelectedItem darauf zugreifen wird mein ObjectWrapper zurückgegeben. Ich möchte aber, damit man nicht immer daran denken muss, das das als Basis bezeichnete Objekt zurückgegeben wird. Beispiel:
  public partial class frmTest : Form
  {
    public frmTest()
    {
      comboBox1.Items.Add(new ObjectWrapper(new BasisItem("Hallo")));
      comboBox1.Items.Add(new ObjectWrapper(new BasisItem("Welt")));
    }
 
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
      BasisItem beispiel = comboBox1.SelectedItem;
    }
  }
 
  class BasisItem
  {
    public BasisItem(string value)
    {
      this.value = value;
    }
 
    string value; 
 
    public override string ToString()
    {
      return value;
    }
  }
Leider habe ich keine Idee wie ich das Problem lösen könnte. Vielleicht hat hier jemand eine Idee.
Danke schon mal im Vorraus.

LG

PS: Für den Fall das der ValueMember bzw. der DisplayMember in der ComboBox gesetzt ist habe ich auch eine Lösung. Die habe ich aber nicht mit in die Beispielklasse oben mit eingefügt.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ObjectWrapper kopieren2.343IdC#07.05.12 13:29
Re: ObjectWrapper kopieren1.403IdC#07.05.12 14:23
Re: ObjectWrapper kopieren1.395ModeratorFZelle08.05.12 09:40
Re: ObjectWrapper kopieren1.321Micke08.05.12 11:07
Re: ObjectWrapper kopieren1.356IdC#08.05.12 11:59
Re: ObjectWrapper kopieren1.377Micke08.05.12 12:42
Re: ObjectWrapper kopieren1.427IdC#08.05.12 12:51
Re: ObjectWrapper kopieren1.363Micke08.05.12 18:19
Re: ObjectWrapper kopieren1.368IdC#08.05.12 18:36

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