Generische ObservableCollection für alle meine Einheiten

Benutze ich Entity Framework Zugriff auf meine Daten auf SQL Server und ich brauche für die Anzeige von Daten aus meiner SQL-Tabellen in WPF DataGrid. Ich weiß, wie zu tun, dass jeder meiner Personen: ich erstelle ein View mit DataGrid:

<DataGrid ItemsSource="{Binding Rows}" SelectedItem="{Binding Row}" />

sowie ViewModel mit ObservableCollection<PERSONS> als öffentliches Eigentum:

public class DictionaryViewModel : ViewModelBase
{
    private ObservableCollection<PERSONS> rows;
    public ObservableCollection<PERSONS> Rows
    {
         get
         {
              return rows;
         }
         set
         {
              rows = value;
              RaisePropertyChanged("Rows");
         }
    }

    public DictionaryViewModel()
    {
        Rows = new ObservableCollection<PERSONS>(myDataContext.PERSONS);
    }
}

Meine Frage ist wie ich, dass für eine beliebigen Person? Gibt es generische Typ für Entitäten? Es wäre schön, etwas zu schreiben wie diese:

public class DictionaryViewModel : ViewModelBase
{
    private ObservableCollection<GenericType> rows;
    public ObservableCollection<GenericType> Rows
    {
         get
         {
              return rows;
         }
         set
         {
              rows = value;
              RaisePropertyChanged("Rows");
         }
    }

    public DictionaryViewModel(GenericType type)
    {
        Rows = new ObservableCollection<type>(...);
    }
}

Ich wirklich nicht wollen, erstellen Sie eine separate ViewModel für jede Einheit, die ich habe.

Dank.

  • Können Sie bitte bestätigen, ob Sie nicht wollen, erstellen Sie separate ViewModel oder ObservableCollection für jede Entität?
  • ViewModel wie ich bereits in meiner Frage. Ich würde gerne eine ViewModel dauert die entity als parameter
  • Gut im Bearbeiten meiner Antwort..bitte warten Sie, bis 2 Pastillen
  • Ja, jetzt können Sie meine Antwort.. ich habe editiert es nach Ihrem Bedarf.
  • wollen Sie eine Instanz der konkreten ViewModel wo Sie ausfüllen können und der mischen ein Typ? oder x-Instanzen, wo jeder ist stark typisiert?
  • Ich füllen möchten Rows durch PERSONS oder DEPARTMENTS. E. g. Benutzer klicken auf eine Schaltfläche "Benutzer Verwalten". DictionaryView ist etwa zu öffnen, wo DataGrid gefüllt ist PERSONS. Die gleiche Sache mit DEPARTMENTS. Ich will nicht, Sie zu mischen, das ist unnatürlich 🙂

Schreibe einen Kommentar