Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C#-Winform] Usare una List<T> come datasource

    Ciao.
    Sono recentemente passato a C#.
    Come si fa ad utilizzare una lista di tipo List<t> come datasource per un datagrid? In Vb.net una volta assegnato l'oggetto lista alla proprietà datasource andava. Ora nelle prove che sto facendo le righe non vengono aggiornate nella tabella.

    Ho provato ad implementare gli oggetti come INotifyPropertyChanged e le liste come ObservableCollection ma nulla è cambiato.
    Codice che ho usato
    Elemento della lista:
    codice:
     public class FilterItem : INotifyPropertyChanged
        {
            private string _Pattern;
            private string _Mask;
    
            public String Pattern
            {
                get
                {
                    return _Pattern;
                }
                set
                {
                    _Pattern = value;
                    OnPropertyChanged("Pattern");
                }
            }
    
            public String Mask
            {
                get
                {
                    return _Mask;
                }
                set
                {
                    _Mask = value;
                    OnPropertyChanged("Mask");
                }
            }
            
    
            public FilterItem(String Pattern, String Mask)
            {
                this.Pattern = Pattern;
                this.Mask = Mask;
            }
    
            public override string ToString()
            {
                return Mask + "\t" + Pattern;
            }
    
            public event PropertyChangedEventHandler PropertyChanged;
    
            protected void OnPropertyChanged(string info)
            {
                PropertyChangedEventHandler handler = PropertyChanged;
                if (handler != null)
                {
                    handler(this, new PropertyChangedEventArgs(info));
                }
            }
        }
    lista:
    codice:
     public class Filterlist : ObservableCollection<FilterItem>
        {
            public Filterlist()
            {
                base.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(Filterlist_CollectionChanged);
            
            }
    
            void Filterlist_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
            {
                Debug.WriteLine(e.ToString());
            }
    
            public override string ToString()
            {
                String ret = String.Empty;
                foreach (FilterItem item in this)
                {
                    ret += item.ToString() + "\n";
                }
                return ret;
            }       
        }
    e usato:
    codice:
    [...]
     public Filterlist Filters = new Filterlist();
    [...]
     dbwFilters.DataSource = Filters;
    Idee?
    -----
    101110101011101111100000
    -----

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Re: [C#-Winform] Usare una List<T> come datasource

    Originariamente inviato da xam85reBanned
    Ho provato ad implementare gli oggetti come INotifyPropertyChanged e le liste come ObservableCollection ma nulla è cambiato. [...]
    Idee?
    Cosa intendi con "nulla è cambiato"? Rispetto a cosa?
    Ottieni un errore o un comportamento anomalo?

    Aggiungi qualche dettaglio così approfondiamo...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Gli elementi della lista non vengono mostrati nella tabella.
    Vengono disegnate le colonne ma anche con una lista di 20 elementi la tabella rimane vuota.
    es:

    Nella lista associata come datasource al momento dello screen ci sono 20 elementi.

    ps: Non è scritta nera su fondo nero ci avevo già pensato
    -----
    101110101011101111100000
    -----

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.