.NET GUI

.NET Community für WPF, Silverlight und mehr!
Willkommen bei .NET GUI. Anmeldung | Registrieren | Hilfe | Impressum | Forumsregeln
in Suchen

IDataErrorInfo, Property Binding in Windows Forms 2.0

Letzter Beitrag 06-24-2009 21:00 von Anti-Frickel. 2 Antworten.
Seite 1 von 1 (3 Treffer)
Beiträge sortieren: Zurück Weiter
  • 06-22-2009 20:15

    IDataErrorInfo, Property Binding in Windows Forms 2.0

    Hallo,

    dank wpf bin ich erst auf IDataErrorInfo aufmerksam geworden ^^

    In WPF wird ja z.B. die Property FirstName vom Customer Model an die View bzw. deren TextBox gebunden mit Bind.

    In Windows Forms habe ich textBox1.DataBindings oder sowas. Woher weiß die Property Firstname die vielleicht im Presenter ist (ansatt ViewModel in MVVM), dass gerade Daten in textBox1 sind und daher
    für jedes eingegebene Zeichen des Vornames der Wert der Property gesetzt wird und für jedes Zeichen auf IsValid geprüft wird? Ich habe kein Datenbank Model lediglich eine eigene Klasse Customer in die Benutzereingaben gelesen wird. 
    Später wird dieses Objekt wo weitergereicht, wenn alles valide ist. Ich kann im VS08 Designer bei der textBox1.Databindindigs nur eine DataSource angeben aber keine eigene Klasse sprich Customer.cs.

    Wie wird das gelöst in Win Forms mit dem Property Binding?

    Edit: zitat:"Whatever the case, there needs to be a standardized way for data-bound business objects to notify data-bound controls when there is a validation error at the object level."


    leider ist mein customer objekt kein data-bound business object, geht das also nicht was ich will?

    Vor allem wie bind ich das customer object welches ja Model ist an mein databound control in der View ? beide wissen voeinander nicht bzw. es gibt keine Verbindung...

    Edit: Ach Gott ich habe das Projekt noch nicht build gemacht, daher wurde Customer.cs nicht angzeigt unter den DataSources...

    • Beitragspunkte: 5
    • IP-Adresse ist Registriert
  • 06-23-2009 12:27 Antwort zu

    AW: IDataErrorInfo, Property Binding in Windows Forms 2.0

    So bevor ich jetzt weitermache mir aber nicht sicher bin ob das so stimmt frag ich kurz vorher und würde mich über Tips freuen:

    2 Fragen habe ich noch:

    1.) Lässt sich mit dem DataBinding Mechanism von .NET 2.0 der WPF control.Property -> model.Property Mechanismus 1:1 nachbauen mit IPropertyNotifyChanged usw. ?

    Dies habe ich bisher:

    View:

    10 Textboxen wo die .Text Property jeder TextBox via BindingSource an die Property von meiner Customer.cs gebunden ist

    Presenter: implementiert INotifyPropertyChanged

    10 Methoden wie diese sowie ein Instanziierten Customer

    private Customer _customer = new Customer();
    public event PropertyChangedEventHandler PropertyChanged;
     private void NotifyPropertyChanged(String propertyName)
            {
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
                }
            }
    
            #region Customer Properties
    
            public string CompanyName
            {
                get { return _customer.CompanyName; }
                set
                {
                    if (_customer.CompanyName != value)
                    {
                        _customer.CompanyName = value;
                        Debug.WriteLine(value);
                        NotifyPropertyChanged("CompanyName");
                    }              
                }
            }

    Model: implementiert IDataErrorInfo (erst später für Fehlervalidierung wichtig)

    10 automatic properties

    ------------------------

    2.) Was mache ich denn falsch, damit bei meiner Debug Ausgabe der value geschrieben wird, denn ich aktuell eingebe in der Textbox?

    3.) Was ich an dem MS sample nicht verstehe, warum gibt es eine DemoCustomer Klasse die INotifyPropertyChanged implementiert? Das wäre doch das ViewModel(mvvm) bzw. Presenter(mvp)

    eigentlich sollte die DemoCustomer Klasse IDataErrorInfo implementieren ? -->  http://msdn.microsoft.com/en-us/library/system.componentmodel.idataerrorinfo(VS.80).aspx

    • Beitragspunkte: 5
    • IP-Adresse ist Registriert
  • 06-24-2009 21:00 Antwort zu

    AW: IDataErrorInfo, Property Binding in Windows Forms 2.0

    ok ich hab mir die Enterprise Lib 4.1 Validation Block mal angeschaut, sehr schöne Beispiele, leider funktioniert die Validerung des Inhaltes einer Textbox nur wenn die Textbox den Focus verliert... ist es nicht möglich (ok ich will jetzt hier kein TextChangedEvent einführen und jedesmal den Wert übertragen obwohl das wpf genauso macht - automatisch wohlgemerkt - ) , dass der Eingabe von jedem Zeichen validiert?

    • Beitragspunkte: 5
    • IP-Adresse ist Registriert
Seite 1 von 1 (3 Treffer)
Powered by Community Server (Commercial Edition)    69° - Internet-Agentur München (CMS, ASP.NET, Webdesign)