DataGridView datasource
Ich habe ein DataGridView und eine Liste der einige Objekte, die bevölkert wird von einer SQL-Tabelle. Es gibt zwei Möglichkeiten, die ich verwendet, um binden Sie die Liste der raster.
1.Über die Liste direkt an die datasource -
grdSomeList.DataSource = GetListSomeObjects();
2.Mit durch eine verbindliche Quelle
_bsSomeList = new BindingSource();
_bsSomeList .DataSource = GetListSomeObjects();
grdSomeList.DataSource = _bsSomeList ;
Was ist die beste Praxis zu binden, die Quelle der Daten? Ist, gibt es einige spezifische Gründe, die hinter diesen beiden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden ist der erste Weg, wenn seine one-way-binding.
Verwenden Sie die zweite Möglichkeit, wenn seine zwei-Wege-Bindung bedeutet, dass, wenn Benutzer ändern DataGridView-Zellen, werden die änderungen beibehalten/beibehalten, in der
GetListSomeObjects()
datasource.Du noch nicht angegeben, wenn dies WPF, Winforms, Web, aber Lesen Sie mehr auf BindingSource ist und Eins, Zwei & Weise Verbindlich, etc:
TwoWay
Veränderungen bewirkt, die entweder die Eigenschaft source oder der target-Eigenschaft, um automatisch aktualisieren Sie die anderen. Diese Art der Bindung eignet sich für Bearbeitbare Formulare oder andere voll-interaktive UI-Szenarien.
OneWay
Updates verbindliches Ziel (target) - Eigenschaft, wenn die verbindliche Quelle (source) wechselt. Diese Art der Bindung eignet sich, wenn das Steuerelement gebunden wird, ist implizit schreibgeschützt. Zum Beispiel, können Sie binden Sie an eine Quelle (z.B. einen Aktien-ticker. Oder vielleicht ist Ihr Ziel-Eigenschaft hat keine control-Schnittstelle zur Verfügung, um änderungen vorzunehmen, wie z.B. eine Daten-gebunden Hintergrundfarbe einer Tabelle. Wenn es keine Notwendigkeit für die überwachung der änderungen der target-Eigenschaft, mit der OneWay-Bindung-Modus vermeidet den Aufwand für die TwoWay-Bindung-Modus.
Einmalige
Updates verbindliches Ziel, wenn die Anwendung gestartet wird oder wenn die Daten Kontext ändert. Diese Art der Bindung ist angemessen, wenn Sie Daten, wo Sie entweder einen snapshot des aktuellen Status angemessen ist, oder die Daten sind wirklich statisch. Diese Art der Bindung ist auch nützlich, wenn Sie möchten, initialisieren Sie Ihre target-Eigenschaft mit einem Wert aus einer source-Eigenschaft und die Daten-Rahmen ist nicht im Voraus bekannt. Dies ist im wesentlichen eine einfachere form der OneWay-Bindung, bietet eine bessere Leistung in den Fällen, wo die Quelle Wert nicht ändern.
OneWayToSource
Updates der source-Eigenschaft, wenn sich die Zieleigenschaft ändert.
Standardmäßig Verwendet die Standard-Modus-Wert der Bindung Ziel. Der default-Wert variiert für jede Abhängigkeitseigenschaft. In general, Benutzer-editierbaren Steuerelement Eigenschaften, wie z.B. Textfelder und Checkboxen, die standardmäßig zwei-Wege-Bindungen, während die meisten anderen Eigenschaften als Standard zu one-way-bindings. Eine programmgesteuerte Möglichkeit, um zu bestimmen, ob eine Abhängigkeitseigenschaft bindet one-way oder zwei-Wege-standardmäßig ist die Eigenschaft Metadaten der Eigenschaft mit GetMetadata und überprüfen Sie dann den Boolean-Wert von der BindsTwoWayByDefault Eigenschaft.