Guten Tag zusammen!
Nehmen wir als Beispiel folgenden Code:
Spoiler anzeigen
Dort habe wir eine Hauptklasse namens "t" und eine SubClass namens "Kategorie". Um diese ganze Sache nun in einem Datagridview darzustellen, habe ich der Hauptklasse bisher immer eine ReadOnly Property gegeben, die die Bezeichnung der SubClass ausgibt.
Nun habe ich es mal so getestet, die ToString() Funktion der SubClass zu überschreiben, sodass diese den Namen wiedergibt.
Ist das so okay, oder meint ihr das sollte man so besser nicht machen?
Kleine Anmerkung:
Das Datagridview soll nur zur Darstellung dienen, dort soll der User nichts editieren können, sonst würde auch (glaube ich) bei der ToString()-Version ein Fehler wegen falschem Datentyps kommen. (Also beim Klick ins Datagridview/hinzufügen von Rows).
Nehmen wir als Beispiel folgenden Code:
VB.NET-Quellcode
- Option Strict On
- Imports System.ComponentModel
- Public Class Form1
- Private ts As New BindingList(Of t)
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- ts.Add(New t(0, "Null", New Kategorie(0, "Kategorie Null")))
- ts.Add(New t(1, "Eins", New Kategorie(1, "Kategorie Eins")))
- DataGridView1.DataSource = ts
- ts(0).Kategorie.getData(New Kategorie(2, "Geändert"))
- End Sub
- End Class
- Public Class t
- Implements INotifyPropertyChanged
- Private _ID As String
- Public Property ID() As String
- Get
- Return _ID
- End Get
- Set(ByVal value As String)
- _ID = value
- RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("ID"))
- End Set
- End Property
- Private _Name As String
- Public Property Name() As String
- Get
- Return _Name
- End Get
- Set(ByVal value As String)
- _Name = value
- RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Name"))
- End Set
- End Property
- Private _Kategorie As New Kategorie
- Public Property Kategorie() As Kategorie
- Get
- Return _Kategorie
- End Get
- Set(ByVal value As Kategorie)
- _Kategorie = value
- RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Kategorie"))
- End Set
- End Property
- Sub New()
- End Sub
- Sub New(i As Integer, n As String, k As Kategorie)
- ID = i.ToString()
- Name = n
- Kategorie.getData(k)
- End Sub
- Public Event PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged
- End Class
- Public Class Kategorie
- Implements INotifyPropertyChanged
- Private _ID As String
- Public Property ID() As String
- Get
- Return _ID
- End Get
- Set(ByVal value As String)
- _ID = value
- RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("ID"))
- End Set
- End Property
- Private _Name As String
- Public Property Name() As String
- Get
- Return _Name
- End Get
- Set(ByVal value As String)
- _Name = value
- RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Name"))
- End Set
- End Property
- Sub New()
- End Sub
- Sub New(i As Integer, n As String)
- ID = i.ToString()
- Name = n
- End Sub
- Public Sub getData(k As Kategorie)
- ID = k.ID
- Name = k.Name
- End Sub
- Public Overrides Function ToString() As String
- Return _Name
- End Function
- Public Event PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged
- End Class
Dort habe wir eine Hauptklasse namens "t" und eine SubClass namens "Kategorie". Um diese ganze Sache nun in einem Datagridview darzustellen, habe ich der Hauptklasse bisher immer eine ReadOnly Property gegeben, die die Bezeichnung der SubClass ausgibt.
Nun habe ich es mal so getestet, die ToString() Funktion der SubClass zu überschreiben, sodass diese den Namen wiedergibt.
Ist das so okay, oder meint ihr das sollte man so besser nicht machen?
Kleine Anmerkung:
Das Datagridview soll nur zur Darstellung dienen, dort soll der User nichts editieren können, sonst würde auch (glaube ich) bei der ToString()-Version ein Fehler wegen falschem Datentyps kommen. (Also beim Klick ins Datagridview/hinzufügen von Rows).
Polling is trolling!
Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..
Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..