2009-05-04 10 views
1

Ich mache einige Bindung in .NET 2.0. Es war eine Hektik! Ich habe eine DataTable (ich habe versucht, eine DataRow zu verwenden, aber es war nichts davon) und eine BindingNavigator (die die magische Zutat schien) mit einer BindingSource, und ich programmiere programmgesteuert Steuerelemente dazu. Eine meiner Spalten ist jedoch eine ID, die ich dem Benutzer sicherlich nicht anzeigen möchte, aber ich muss trotzdem leicht zugänglich sein. Da ich die ID verwende, um weitere Aufrufe an die Datenbank zu tätigen, wollte ich diese Anrufe auch ausführen lassen, wenn sich die Datenbank ändert.Datenbindung an eine Eigenschaft, die ich in .Net 2.0 erstellen

Mein Gedanke war, eine eigene Eigenschaft in dem Formularcode des entsprechenden Typs zu erstellen, dann bin ich daran gebunden. Dies funktioniert nicht, obwohl die Bindung an Textbox-Eigenschaften mit demselben Code funktioniert. Warum nicht?

Hier einige Code in meinem Usercontrol ist so können Sie sehen, was ich tue:

Guid SetID { get; set; } 

//... 

DataTable SetTable = DatabaseObject.GetDataTable(tablename) 
SetTable.DefaultView.Sort = "DisplayName ASC"; 
SetBinder.DataSource = SetTable; 
foreach (DataColumn column in SetTable.Columns) 
     { 
      if (!Controls.ContainsKey("in" + column.ColumnName)) continue; 
      //This code's mostly here so I don't have to have a list of controls 
      //with bindings for each when it's mostly the same for all of them. 
      Controls["in" + column.ColumnName].DataBindings.Add("Text", SetBinder, column.ColumnName); 
     } 
this.DataBindings.Add("SetID", SetBinder, "SetID"); //doesn't work 

Antwort

0

Ich arbeitete es aus: das Eigentum öffentlich sein muss, und Sie müssen die BindableAttribute auf die Eigenschaft hinzufügen möchten, so:

[Bindable(true)] 
public Guid SetID { get; set; } 
Verwandte Themen