Avatar billede hulla Novice
07. oktober 2011 - 14:50 Der er 4 kommentarer og
1 løsning

WPF databinding

Hej

Jeg har problemer med databinding af kontroller i min WPF applikation.

Jeg kan godt få en kontrol (f.eks. treeview) til at afspejle data, men jeg kan ikke få det samme treeview til at opdatere når jeg har slettet et data element fra den datasource den er bundet til. Jeg bruger Entity Framework.

Jeg gør sådan her ved databinding:

Entities entities = new Entities();
TreeD.ItemsSource = entities.Units.Where(o => o.dCount > 0);

og sådan her når jeg sletter et element:

using (Entities entities = new Entities())
{
  Unit unit = (Unit)entities.Units.Where(a => a.Id == 3).FirstOrDefault();
entities.Units.DeleteObject(unit);
entities.SaveChanges();
}


Rækken blive fint slettet i databasen, og treeview er også opdateret ved genstart af applikation, men den skulle jo gerne vise ændringen med det samme.

Nogen der har et bud?
Avatar billede Syska Mester
07. oktober 2011 - 15:01 #1
Klart det ikke virker.

1. Du henter en liste ud og binder til den.
2. Fra et andet sted i din kode sletter du en række.

Hvordan skal step 1 vide at du har slettet en række uden at lave en rebind af dine data ?

Du skal nok kigge på IObserableCollection<T>

Så når du sletter noget fra dit tree, så får din collection det at vide og du kan derefter slette den i din database.

Håber det giver lidt mening.
Avatar billede hulla Novice
07. oktober 2011 - 16:43 #2
Det giver fin mening, og jeg har selv prøvet med en IObserableCollection, men uden held.

Skal man gøre noget specielt for at det databundne ui får besked?
Avatar billede Syska Mester
07. oktober 2011 - 17:10 #3
Ja.

Normalt er der vist kun "One-way" binding. Altså fra data til UI. Du skal have det ændret til Two-way.

Jeg er ingen WPF ekspert, men mon ikke du kan google dig frem til det når du ved hvad du skal søge efter.

Jeg bliver nok nød til at se hvordan din codebind ser ud og din XAML, for måske bedre at kunne se hvad der går galt.

mvh
Avatar billede hulla Novice
02. november 2011 - 07:04 #4
Smider du et svar, du ledte mig de rigtige steder hen :-)
Avatar billede Syska Mester
02. november 2011 - 10:02 #5
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester