logi sisse meist KKK

Alates 1.01.2018 pinu.ee lõpetab oma töö. Tänud kõigile osalejatele ja kohtume jälle!

Kasutan ühes C#-ga kirjutatud programmis PropertyGrid-elementi, mis haldab teatud programmi sätteid. Mõned sätted kasutavad alusena loetelusid teistest programmi osadest. Väärtusi tõlgib üks TypeConverter järglane. Midagi sellist:

class Person {
    ...
    [TypeConverter(typeof(ProfessionConverter))]
    public long profession { get; set; }
    ...
    }

seda teenindab ProffessionConverter, mis sisaldab midagi sellist:

class ProfessionConverter : BaseConverter {
  public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context){ 
    Dictionary<long, string> array = new Dictionary<long, string>();
    // täidan array väärtustega, mille tõmban oma andmebaasist
    ...
    return new StandardValuesCollection(array.Values); 
  }
...
}

Häda on selles, et GetStandardValues kutsutakse välja ainult korra esimese Person-kasutamise käigus.

Näiteks pakutakse ametiks (1=kokk, 2=ehitaja, 3=õpetaja). Muudan sätetest 1=peakokk, kuid programm jääb kangekaelselt näitama Person juurde "kokk" kuni programmi sulgemiseni, rääkimata nimekirja täiendamisest uute väärtustega. Kus ProfessionConverter klassi isend istub, ma kaevata ei oska.

Olen püüdnud internetist kammida, kas seda saaks kuidagi vajadusel käsitsi uuesti esile kutsuda, kuid ei ole lahendust leidnud.

küsitud Feb 18 at 01:33

Teet65's gravatar image

Teet65
175912

edited Feb 18 at 01:47

Leidsin lahenduse, ei ole vaja teemale vastata. Mul ei olnud massiivi värskendamist tegelikult GetStandardValues funktsioonis olemas, see tehti ainult objekti loomisel.

(Feb 18 at 20:27) Teet65
Ole esimene kes vastab sellele küsimusele!
lülita eelvaade

Jälgi seda küsimust

By Email:

Pärast sisselogimist saad tellida muudatuse teavitusi siit

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *kaldkiri* või __kaldkiri__
  • **paks kiri** või __paks kiri__
  • link:[tekst](http://url.com/ "pealkiri")
  • pilt?![alt tekst](/path/img.jpg "pealkiri")
  • nummerdatud nimekiri: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • põhilised HTML märgendid on samuti toetatud

Pinu tööpakkumised

kõik pakkumised »

Küsimuse sildid:

×2
×1

küsitud: Feb 18 at 01:33

nähtud: 693 korda

viimati uuendatud: Feb 18 at 20:27

Litsents: Creative Commons Attribution License | Kontakt: info@pinu.ee