RadioButton.Checked 内 Tree

Posted

技术标签:

【中文标题】RadioButton.Checked 内 Tree【英文标题】:RadioButton.Checked inside Tree 【发布时间】:2017-07-15 04:52:58 【问题描述】:

起初我有一个列表,其中包含生成的单选按钮。看起来像这样:

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);

结果,这给了我一个 RadioButtons 列表。但是,我想将此列表转换为树视图。 所以我做了以下事情:

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);

现在这给了我想要的结果。 但是,我无法将属性 Checked 添加到我的 RadioButton。

有没有一种方法可以将 .Checked.Click 等属性分配给树视图中的 RadioButtons?

编辑:

我现在正在做的例子。

public class MyRadioButtonItem

    public RadioButton MyRadioButton  get; set; 
    public bool IsChecked  get; set; 
    public string content  get; set; 
    public string Groupname  get; set; 
 

然后我这样定义它:

TreeViewItem tree = new TreeViewItem();
tree.Header = new MyRadioButtonItem()

    Groupname = "ticketfilter",
    content = TeamName.Name.ToString(),
 ;

它可以识别我定义的所有内容。 但是,我需要像这样的选项:单击并检查。

但是例如在这个例子中。单选按钮如何知道 GroupName 和 Content 之间的区别。 例如 Groupname 可以是内容,因为它们都是字符串?

【问题讨论】:

【参考方案1】:

是的,您可以像这样创建自定义类:

public class MyRadioButtonItem

  public RadioButton MyRadioButton get; set;
  public bool IsChecked get; set;
 

然后用它代替RadioButton

如果这有帮助,请告诉我。

【讨论】:

当我这样做时,单选按钮分配的控件得到识别。然而。这不起作用。因为如果我在我的公开课上分配内容。并在私人空间中使用它。单选按钮如何知道哪个是内容?因为字符串标题或测试也可能是一个。 您能否详细说明一下,如果可能,请显示一些示例代码?

以上是关于RadioButton.Checked 内 Tree的主要内容,如果未能解决你的问题,请参考以下文章

C# RadioButton

radioButton& listBox&numericUpDown 操作

如何实现radiobutton的单选呢?

求教QML RadioButton单选问题

Button,CheckBox,Lable,RadioButton,ComboBox,TextBox六个简单控件的使用

VS2010 radio button 起始默认选中