Avatar billede AOlsen Juniormester
04. oktober 2021 - 14:27 Der er 1 kommentar

Databinding - DataGridview - BindingSource 101

Hej Eksperter,

Findes der en smertefri måde at databinde en liste af mine egne objekter til en datagridview i winforms.
  - Jeg vil gerne have brugerens ændringer sendt tilbage til objekterne i listen.
  -Og samtidig understøtte DataView/RowFilter + sortering.

Jeg har implementeret INotifyPropertyChanged på objekterne + udskiftet List med SortableBindingList (fra Google søgning). Det tjekker 2 af 3 punkter - jeg kan sætte listen direkte som datasource på en bindingsource og sortere i grid, samt ændringer fra grid opdateres automatisk tilbage til objekterne. Men jeg kan ikke bruge DataView/RowFilter.

public class Cars : INotifyPropertyChanged
{
private string_make;
public string Make
        {
            get { return make; }
            set { make= value; NotifyPropertyChanged("EpisodeName"); }
        }
}

SortableBindingList<Car> cars = new SortableBindingList<Car> { new Car....... };
bindingSource1.DataSource = cars;
bindingNavigator1.BindingSource = bindingSource1;
dataGridView1.DataSource = bindingSource1;

Kan jeg få RowFilter på denne tilgang? Eller hvor skal jeg kigge hen for at understøtte filtrering.

Jeg kan også konvertere listen af cars til DataTable, så får jeg adgang til RowFilter og sortering ser også ud til at virke automatisk. Men her kommer ændringer ikke tilbage til listen af biler.

List<Car> cars = new List<Car> { new Car....... };
DataTable dt = CollectionHelper.ConvertTo(cuesheet.Cues);

Findes der virkelig ikke en nem måde at tillade en bruger at arbejde med en liste af objekter i WinForms?
Avatar billede AOlsen Juniormester
04. oktober 2021 - 14:35 #1
Update ->
List<Car> cars = new List<Car> { new Car....... };
DataTable dt = CollectionHelper.ConvertTo(cars);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester