Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# [.NET 2.0] Datagrid und Enumeration-Lookup? (https://www.delphipraxis.net/77358-%5B-net-2-0%5D-datagrid-und-enumeration-lookup.html)

Phoenix 18. Sep 2006 16:11


[.NET 2.0] Datagrid und Enumeration-Lookup?
 
Ich finde da gerade nix auf die Schnelle.

Ich habe ein eigenes Objekt in einer von CollectionBase abgeleiteten Liste, welches ich als Datasource für ein Grid benutze (via BindingSource).

Code:
ParameterListe Parameter = new ParameterListe();
BindingSource src = new BindingSource();
src.DataSource = Parameter;
grid.DataSource = src;
Wie ich auf ein anderes Objekt mit einer weiteren DataSource einen Lookup hinbekomme ist kein Problem:

Code:
PermissionList permissions = new PermissionList();
BindingSource permissionsource = new BindingSource();
permissionsource.DataSource = permissions;

// colPermission ist eine DataGridViewComboBoxColumn
colPermission.DataSource = permissionsource;
colPermission.DisplayMember = "Name";
colPermission.ValueMember = "Name";
colPermission.DataPropertyName = "Permission";
So, nun nochmal zu meinem ersten Code: Die Parameterliste besteht aus Parameter-Objekten.

Diese haben ein bestimmtes Property:
Code:
    enum ValueType
    {
        String = 0,
        Int = 1,
        Bool = 2
    }

    class ValueItem
    {
        // [...]
        private ValueType _type = ValueType.String;

        public ValueType Type
        {
            get { return _type; }
            set
            {
                _type = value;
                DoModified();
            }
        }
        // [...]
    }
Wie bekomme ich nun den Typ als Lookup auf die möglichen Werte in die Grid hinein?

Elvis 18. Sep 2006 16:32

Re: [.NET 2.0] Datagrid und Enumeration-Lookup?
 
Zitat:

Wie bekomme ich nun den Typ als Lookup auf die möglichen Werte in die Grid hinein?
Piece of cake...
Code:
blabla.DataSource = Enum.GetValues(typeof(ValueType));
Übrigens ist ValueType ein ganz fieser Name, der mit System.ValueType (dem Dummyvorfahren aller ... ValueTypes) kollidiert.

Außerdem sollte DoModified so verändert werden, dass es mit INotifyPropertyChange vereinbar ist. Ein eigenes Change Event zu schreiben macht nicht viel Sinn, da man mit INotifyPropertyChange direkt die Aktualisierung an die UI weiterreichen kann. (Die UI wird sich dann den passenden Wert von alleine nachladen)

Phoenix 18. Sep 2006 17:19

Re: [.NET 2.0] Datagrid und Enumeration-Lookup?
 
Hrm.. wäre zu überlegen. Zur Zeit markiere ich damit nur die Objekte die in die Datenbank geupdatet werden müssen, zumal ich den DoModified() auch bei jedem einzelnen Valuechange aufrufe (ist ne beim Kunden gewachsene Struktur die sich bis jetzt gut bewährt hat in den Fachklassen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz