2017-02-24 2 views
1

Zuerst hatte ich eine Liste, die generierte Radiobuttons enthielt. Das sah wie folgt aus:RadioButton.Checked in Baum

foreach (Team TeamName in loadOperation.Entities) 
{ 
    RadioButton radiobutton = new RadioButton(); 
    radiobutton.GroupName = "ticketfilter"; 
    radiobutton.Content = TeamName.Name.ToString(); 

    int teamid = TeamName.TeamID; 
    radiobutton.Checked += new RoutedEventHandler((s, e) => FilterForTeam(s, e, teamid)); 
    radiobutton.Click += new RoutedEventHandler((s, e) => LoadTickets()); 

    UserRadioButtons.Children.Add(radiobutton); 
} 

Als Ergebnis das gab mir eine Liste von Radiobuttons. Allerdings möchte ich diese Liste in eine Baumansicht umwandeln.
Also habe ich folgendes:

foreach (Team TeamName in loadOperation.Entities) 
{ 
    TreeViewItem tree = new TreeViewItem(); 
    tree.Header = new RadioButton() 
    { 
     GroupName = "ticketfilter", 
     Content = TeamName.Name.ToString(), 
    }; 


    int count = TeamName.TeamMemberships.Select(d => d.User.UserID).Count(); 
    int startcount = 0; 
    while (startcount < count) 
    { 
     tree.Items.Add(new TreeViewItem() 
     { 
      Header = new RadioButton() 
      { 
       GroupName = "ticketfilter", 
       Content = TeamName.TeamMemberships.Select(d => d.User.FullName).Skip(startcount).FirstOrDefault(), 
       //checked = something // This turns into .Ischecked, 
      } 
     }); 
     startcount++; 
    } 

    UserRadioButtons.Children.Add(tree); 
} 

Nun ist diese mir das Ergebnis schenkt ich will.
Allerdings kann ich nicht die Eigenschaft Checked zu meinem RadioButton hinzufügen.

Gibt es eine Möglichkeit, dass ich Propriétés wie .Checked und .Click auf die Optionsfelder in meiner Baumansicht zuweisen?

EDIT:

Beispiel von dem, was ich jetzt mache.

public class MyRadioButtonItem 
{ 
    public RadioButton MyRadioButton { get; set; } 
    public bool IsChecked { get; set; } 
    public string content { get; set; } 
    public string Groupname { get; set; } 
} 

Und dann später definieren ich es wie folgt aus:

TreeViewItem tree = new TreeViewItem(); 
tree.Header = new MyRadioButtonItem() 
{ 
    Groupname = "ticketfilter", 
    content = TeamName.Name.ToString(), 
}; 

Es all die Dinge erkennt, ich bin zu definieren. Allerdings brauche ich eine Option wie: angeklickt und überprüft.

Aber zum Beispiel in diesem Beispiel. Wie kennt der Radiobutton den Unterschied zwischen Gruppenname und Inhalt? Zum Beispiel könnte Gruppenname Inhalt sein, da sie beide Zeichenfolgen sind?

Antwort

0

Ja, können Sie eine benutzerdefinierte Klasse wie folgt erstellen:

public class MyRadioButtonItem 
{ 
    public RadioButton MyRadioButton {get; set;} 
    public bool IsChecked {get; set;} 
} 

und dann an Ort und Stelle verwenden von RadioButton

Lassen Sie mich wissen, ob das hilft.

+0

Wenn ich dies tue, werden die Radiobutton zugeordneten Steuerelemente erkannt. Jedoch. Das funktioniert nicht. Becuase, wenn ich Inhalt in meiner öffentlichen Klasse zuweisen. Und benutze es in der privaten Leere. Wie weiß der Radiobutton, welches der Inhalt ist? Denn ein String-Titel oder -Test könnte auch einer sein. – Mitch

+0

Können Sie dies bitte ausarbeiten und, wenn möglich, einen Beispielcode zeigen? –

+0

Überprüfen Sie meine Edit :) – Mitch