Permalänk
Medlem

C# WPF - Nybörjarfråga

Hur når jag t.ex. en listbox från en class i min WPF applikation? Om jag skriver listBox1.Items.Add("snabel"); i klassen så kan den inte hitta listBox1 utan säger istället: Cannot resolve symbol 'listBox1'

Permalänk
Avstängd

Varje instans av en klass känner normalt bara till sina egna medlemmar, listbox1 är en medlem i din WPF Kontroll och kan inte direkt accessas från din din separata klass.. En bra practice när man utvecklar GUI:n är att använda MVVM, för WPF är Caliburn micro bra..

Kolla på http://caliburnmicro.codeplex.com/

Visa signatur
Permalänk
Medlem

Har du i XAML filen satt namnet på din ListBox till listBox1? Har du gjort det bör du ha tillgång till kontrollen via kodfilen. (Förutsatt att det är samma klass)

<ListBox Name="listBox1" />

Visa signatur

Yay!

Permalänk
Medlem
Skrivet av Edholm:

Har du i XAML filen satt namnet på din ListBox till listBox1? Har du gjort det bör du ha tillgång till kontrollen via kodfilen. (Förutsatt att det är samma klass)

<ListBox Name="listBox1" />

Det är en separat klass och jag vill kunna lägga till ett item till en listbox i den separata klassens konstruktor.

Permalänk
Medlem

Okej! Då rekommenderar jag att läsa
http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

Visa signatur

Yay!

Permalänk
Medlem
Skrivet av Edholm:

Det var ingen enkel och snabb lösning

Permalänk
Medlem

Nope men en lösning som lönar sig i längden. Lika bra att göra rätt från början!

Visa signatur

Yay!

Permalänk
Avstängd

Och ska du köra MVVM som Edholm länkar till så använd Caliburn micro som jag länka till

edit: Med caliburn micro slipper du allt junk med Commands etc, den är convensionstyrd, så har du en listbox Customers fattar caliburn att den ska bindas till vymodellens lista av Customers

Visa signatur