WPF und Properties. Wie macht ihr das mit der Schreibweise?

  • WPF

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.

    WPF und Properties. Wie macht ihr das mit der Schreibweise?

    Hallo mich würde mal interessieren wie ihr das mit WPF und den Properties handhabt?

    Ohne WPF wäre es ja kein Problem.

    VB.NET-Quellcode

    1. Public Property Name As String


    Jetzt will ich den Namen aber auf der Oberfläche darstellen und nun habe ich das Problem, dass ich die Kurzschreibweise nicht mehr verwenden kann.

    VB.NET-Quellcode

    1. Private _name As String = ""
    2. Public Property Name As String
    3. Get
    4. Return _name
    5. End Get
    6. Set(ByVal value As String)
    7. _name = value
    8. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Name"))
    9. End Set
    10. End Property


    Ich muss ja im Setter das PropertyChanged Event werfen, daher muss ich nun auch eine Member-Variable deklarieren und die komplette Property ausschreiben.
    Das kann sehr schnell relativ unübersichtlich werden, wenn man 15 Properties oder so hat. Mit der kurzschreibweise ist man da viel besser bedient.
    Daher wollte ich mal fragen wie ihr das so handhabt und ob es da eventuell einfachere Möglichkeiten gibt.
    ich habe die Properties (das get/set) immer in einer extra Klasse...und von der Hauptklasse greife ich nur drauf zu...sieht dann meiner Meinung nach aufgeräumter aus

    VB.NET-Quellcode

    1. Public Class Prop
    2. Public Sub New(ByVal strVorname As String,
    3. ByVal strNachname As String,
    4. ByVal strWohnort As String,
    5. ByVal strID As String)
    6. _strVorname = strVorname
    7. _strNachname = strNachname
    8. _strWohnort = strWohnort
    9. _strID = strID
    10. End Sub
    11. Public Sub New()
    12. End Sub
    13. Private _strVorname As String
    14. Public Property Vorname() As String
    15. Get
    16. Return _strVorname
    17. End Get
    18. Set(ByVal value As String)
    19. _strVorname = value
    20. End Set
    21. End Property

    Aus

    Runshak schrieb:

    VB.NET-Quellcode

    1. Private _strVorname As String
    2. Public Property Vorname() As String
    3. Get
    4. Return _strVorname
    5. End Get
    6. Set(ByVal value As String)
    7. _strVorname = value
    8. End Set
    9. End Property
    machst Du

    VB.NET-Quellcode

    1. Public Property Vorname() As String
    wenn nix weiter drin steht und Du das Studio 2010 und höher hast.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich verwende in allen WPF-Projekten für ViewModels eine Basisklasse (Siehe OnUtils in Signatur; huch, Eigenwerbung :D ).
    Darin gibt's eine Funktion ChangeIfDifferent(Of T)(ByRef Target As T, NewValue As T, ParamArray PropertyNames As String()) As Boolean
    Die prüft, ob Target und NewValue gleich sind. Ist das nicht der Fall, wird Target mit NewValue überschrieben und noch für jeden String in PropertyNames das PropertyChanged-Event ausgelöst. Dadurch spar ich mir viel unnötigen Code.
    Ich habe dann noch ein Snippet eingestellt, sodass ich nur noch "vmprop" und Tab eingeben muss und das Grundgerüst automatisch eingefügt wird:

    Dann die Property zuklappen und schon ist es aufgeräumt.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    ErfinderDesRades schrieb:

    jedenfalls die Kurzschreibweise kannste vergessen.

    Deshalb gibt es solche Ansätze: github.com/Fody/PropertyChanged/wiki/Attributes


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.