Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[C# 2.0] Combobox & databind probleem

Pagina: 1
Acties:

  • DrDelete
  • Registratie: Oktober 2000
  • Laatst online: 06:40
Ik heb een generic List<T>, bijv. List<Product>. Product is een class met enkele properties, waaronder een enum.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public enum ProductStatus = {New, Open, Rejected};

public class Product
{
    private ProductStatus productStatus;

    public Product()
    {
    }

    public ProductStatus ProductStatus
    {
        get
        {
             return this.productStatus;
        }

       set
       {
             this.productStatus = value;
       }
    }

    etc.etc. (meer properties weggelaten)
}


Daarnaast heb ik een data entry form. Op deze form heb ik een datagridview; deze grid is gebind aan de List<Product> en enkele invoervelden zijn via de databindings collection gekoppeld aan de List<Product>.

Ik wil een combobox binden aan de enum property ProductStatus van Product.

Het eindresultaat moet zijn: combobox gevuld met de lijst van enumeratiewaarden van ProductStatus en bij selectie uit de combobox moet de property gezet worden zodat de grid netjes de actuele waarde uit de combobox weergeeft.

Ik heb wat zitten stoeien met de combobox, gezocht op dit forum en op Google maar kom er nog niet uit.

Kunnen jullie mij op weg helpen?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:42

Creepy

Tactical Espionage Splatterer

Wat heb je dan precies geprobeerd en wat lukte daar dan niet mee? Alleen melden dat iets niet lukt is nogal weinig informatie. Als je Programming Beleid - De Quickstart eens doorkijkt dan wordt er om wat meer informatie gevraagd, kan je dat aanvullen?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17-11 08:45

Haan

dotnetter

Gaat die enumeratie ook nog eens veranderen, of zijn het gewoon die drie waardes? Want in dat geval vind ik je constructie een beetje omslachtig. (je kan ook gewoon die waardes direct in je combobox knallen als het toch maar drie vaste waardes zijn ;) )

Maar wat lukt er verder precies niet? Weet je niet hoe je in het algemeen de data aan een combobox moet binden, of alleen het specifieke geval van de enumeratie?

Kater? Eerst water, de rest komt later


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

keyword: EnumDataSource

If it isn't broken, fix it until it is..


  • DrDelete
  • Registratie: Oktober 2000
  • Laatst online: 06:40
Haan schreef op woensdag 03 september 2008 @ 08:51:
Gaat die enumeratie ook nog eens veranderen, of zijn het gewoon die drie waardes? Want in dat geval vind ik je constructie een beetje omslachtig. (je kan ook gewoon die waardes direct in je combobox knallen als het toch maar drie vaste waardes zijn ;) )

Maar wat lukt er verder precies niet? Weet je niet hoe je in het algemeen de data aan een combobox moet binden, of alleen het specifieke geval van de enumeratie?
de enumeratie verandert zelf nooit

als de waarde gezet wordt vanuit de combobox verandert de waarde in de datagridview niet, dit betekent dus dat de List<Product> op die regel niet is bijgewerkt voor de status.

[ Voor 13% gewijzigd door DrDelete op 03-09-2008 09:15 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:02

TeeDee

CQB 241

DrDelete schreef op woensdag 03 september 2008 @ 09:08:
[...]
als de waarde gezet wordt vanuit de combobox verandert de waarde in de datagridview niet, dit betekent dus dat de List<Product> op die regel niet is bijgewerkt voor de status.
Hangt er dan wel een Eventhandler aan het IndexChanged event van de Combobox om het Datagridview te rebinden?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • DrDelete
  • Registratie: Oktober 2000
  • Laatst online: 06:40
ben er inmiddels uit:

Ik heb op het leave event van de combobox hetvolgende gezet, waarbij de currencymanager eerder al is gezet.

code:
1
2
3
4
5
6
7
8
9
10
11
if (currencyManager != null)
{
    Product product = currentcyManager,Current as Product;

    if (product != null)
    {
        product.ProductStatus = (ProductStatus)Enum.Parse(typeof(ProductStatus), statusComboBox.Text);

        currencyManager.Refresh();
    }
}
Pagina: 1