Avatar billede naxosnaxos Nybegynder
02. januar 2003 - 22:37 Der er 10 kommentarer og
1 løsning

Binding på property?+

Hej så er jeg på banen igen. Der er ellers ikke så meget liv her på C# delen. de andre må kede sig ;o)

JEg har nu opbygget et treeview hvor jeg på TreeNodes angiver en TAG værdi, et objekt fra en klasse . I dette objekt er der en property til en privat string Name. Denne vil jeg gerne have skal være navnet på min TreeNode.Text.
Men somhow skal jeg jo have en reference mellem de to, hvis nu min string name ændres, skulle den jo også ændres altså TreeNode.Text.

Er der en måde at binde disse sammen på??
Avatar billede lgy Nybegynder
02. januar 2003 - 23:00 #1
Hvis du laver en public get-metode som kaldes når du opretter dine treeNodes klarer du dit lille problem.

public sting getName(){
  return Name;
}

tempNode.Text = DitObjekt.getName();

Dette burde løse dit problem.

Lars
Avatar billede lgy Nybegynder
02. januar 2003 - 23:01 #2
Det skulle have være et svar.
Avatar billede naxosnaxos Nybegynder
02. januar 2003 - 23:05 #3
den gør det vel ikke. Hvis jeg nu senere ændrer i "Name" bliver "treeNoden.Text" jo ikke opdateret udover hvis jeg gør det explicit igen på din måde... Det var dette jeg gerne ville undgå aom når man bruger databinding i andre sammenhænge
Avatar billede z42cool Nybegynder
03. januar 2003 - 08:25 #4
Du skal bare override dit objekts ToString metode og så fortsat bruge TreeNode's tag property og ikke sætte TreeNode.Text, så klarer TreeView resten for dig!
Avatar billede z42cool Nybegynder
03. januar 2003 - 08:26 #5
Damn..... Sorry..... Kiggede forkert i min source kode..... Se venligst bort fra ovenstående!
Avatar billede lgy Nybegynder
03. januar 2003 - 08:29 #6
Dit treeview er det i forbindelse med ASP.NET eller Windows.

Jeg har lidt erfaring med ASP.NET (Microsoft.Web.UI.WebControls).
Avatar billede naxosnaxos Nybegynder
03. januar 2003 - 10:25 #7
Det er en winform.

En node i mit treeview har et tag object. pågældende node's Text property skal så bindes den samme nodes Tag object på en property der i, som hedder Name.
Jeg har forsøgt med Binding, men kan ikke helt få det til at virke........
Avatar billede naxosnaxos Nybegynder
03. januar 2003 - 12:07 #8
hmmm måske skal jeg ind og se på en slags style for TreeView det er måske en bedre løsning
Avatar billede burningice Nybegynder
03. januar 2003 - 13:40 #9
naxosnaxos>> du kan lave din egen metode der ændrer navnet, som så også ændrer teksten

public class MinTreeView : TreeView {
  public string name {
  set
  {
      base.name = value;
      base.text = value;
  }
  }
}

Som du jo nok kan se, har jeg lavet en ny klasse, som arver alt fra treeview-klassen, for at du på den måde kan udvide klassen med egne "opfindelser", om man så må sige ;)
Avatar billede naxosnaxos Nybegynder
03. januar 2003 - 19:15 #10
JA jeg kunne lave min egen tree klasse. MEn jeg tror problemet vil ligge andensteds. Det jeg arbejder på er en mdi applikation. mit tree er i en mdi child form og jeg ændrer objektet som indeholder teksten til min node i en anden mdi form. Derfor bliver jeg nok nødttil at lave et kald til en simpel funktion der opdater min TreeNode tekst i stedet for. Jeg tænkte bare, at hvis TreeNode teksten var bundet til en property på objektet i TreeNode.TAG, ville det blive opdateret, selv om jeg ændrede i en anden form. i den anden form viser jeg nemlig alle property fra objektet og kan rette i dem der ;o) så det skulle påvirke TreeNode teksten, men det går nok ikke
Avatar billede burningice Nybegynder
03. januar 2003 - 19:55 #11
hmm.. du kunne da lave en funktion til det??

Opdater(Treeview t, string Name) {
    t.name = Name;
    t.text = Name;
    t.tag = Name;
    osv
}

og den kaldes så Opdater(DitTreeView, "Navn");

ellers har jeg ikke flere ideer
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