2009-07-09 7 views
3

Ich versuche, eine SQL-Tabelle an Optionsfelder in einer Windows Forms-Anwendung zu binden.Einfache Möglichkeit, Radiobuttons an SQL-Tabelle in C# zu binden

Die Schaltflächen sind nach Gruppenfeldern gruppiert. Ich habe noch keine Möglichkeit gefunden, sie korrekt an die Datenquelle zu binden. Ich weiß, dass es einigen gelungen ist, ein benutzerdefiniertes Steuerelement zu erstellen, aber gibt es einen einfacheren Weg?

+0

Woran möchten Sie die Radiobuttons binden? Mehrere boolesche Spalten in der Tabelle pro Gruppenfeld? –

+0

Welche Datenbankzugriffstechnologie möchten Sie verwenden? ADO.NET? LINQ zu SQL? Entitätsrahmen? –

+0

Sind die Werte der Schaltflächen an eine Aufzählung oder 1 Spalte in Ihrer Tabelle gebunden oder werden die Antworten in einer Reihe von Spalten unterstützt? –

Antwort

6

Edit: Dies ist wahrscheinlich ein sauberer Weg, es zu tun (ungetestet, sollte aber funktionieren).

Sie sollten tatsächlich direkt (unter Verwendung eines Binding) an die Radiobuttons binden, aber die Ereignisse und Binding.Format behandeln.

Legen Sie im Ereignis 'Format' die Checked-Eigenschaften fest, und im Ereignis Parse speichern Sie den Wert basierend darauf, welcher Wert aktiviert ist.


Ursprüngliche Idee: Ohne eine eigene Steuerung oder Subklassifizieren zu schaffen, der einfachste Weg ist wahrscheinlich nicht direkt zu binden, aber die Werte selbst als Vermittler zu laden und zu speichern.

Eine Möglichkeit ist:

  • zum BindingSource.CurrentItemChanged Ereignis abonnieren und die Radiobutton Checked Eigenschaften entsprechend eingestellt.

  • Abonnieren Sie die RadioButton.CheckedChanged Ereignisse und legen Sie die zugrunde liegende Datenquelle entsprechend fest.

+1

Dies ist eine viel bessere Lösung als meine !, Sie müssen natürlich den Namen dieser Ereignisse erinnern, aber es ist elegant +1 – tekBlues

+0

Klingt gut. Vielen Dank! - Ich würde +1 geben, aber ich habe noch keine Anmeldeinformationen;) –

+0

Klingt noch besser! Vielen Dank. –

3

Ich habe einen schmutzigen Trick verwendet:

eine versteckte Textbox erstellen. Binden Sie es an die Datenquelle und lassen Sie die Optionsfelder ungebunden. Programmieren Sie dann das Textbox-Änderungsereignis, um den Radiobutton-Wert und die Radio-Button-Klick-Ereignisse festzulegen, um den Text-Bot-Wert festzulegen.

Schmutzig, aber es funktioniert.

+0

WTF!?! : D –

+0

Sehr schlau! :) –

+0

Das ist ziemlich gut ... –

Verwandte Themen