![](/img/trans.png)
[英]How can I make a column of check boxes in the ObjectListView behave like radio buttons?
[英]TreeView with check boxes and radio buttons
我想創建單選按鈕作為treeviewitem的子代,但是當我這樣做時,可以選擇多個單選按鈕。 而且,當我選擇1個單選按鈕時,我無法取消選擇它。
樹視圖:
<TreeView Name="tree" Margin="5" Background="LightBlue" ></TreeView>
主窗口:
public partial class MainWindow : Window
{
private TreeViewItem createCheckBoxInTree(string content, TreeView tree)
{
TreeViewItem item = new TreeViewItem()
{
Header = new CheckBox()
{
Content = content
}
};
tree.Items.Add(item);
return item;
}
private void createRadioButtonsChildren(string content, TreeViewItem item)
{
TreeViewItem childRadio = new TreeViewItem()
{
Header = new RadioButton()
{
Content = content
}
};
item.Items.Add(childRadio);
}
public MainWindow()
{
InitializeComponent();
TreeViewItem parent = createCheckBoxInTree("parent", tree);
createRadioButtonsChildren("child1", parent);
createRadioButtonsChildren("child2", parent);
createRadioButtonsChildren("child3", parent);
}
}
選擇RadioButton而不重置其他狀態的原因是您忘記為創建的RadioButton設置組。
請記住,單選按鈕必須屬於一個組,並且至少要選擇一個。 這就是為什么您不能取消選擇的原因。 將您的cs文件中的代碼更改為下面的代碼,它可以根據需要工作。
protected string RadioButtonGroupName { get; set; }
private TreeViewItem createCheckBoxInTree(string content, TreeView tree)
{
TreeViewItem item = new TreeViewItem()
{
Header = new CheckBox()
{
Content = content
}
};
tree.Items.Add(item);
return item;
}
private void createRadioButtonsChildren(string content, TreeViewItem item)
{
TreeViewItem childRadio = new TreeViewItem()
{
Header = new RadioButton()
{
Content = content,
GroupName = RadioButtonGroupName,
}
};
item.Items.Add(childRadio);
}
public MainWindow()
{
InitializeComponent();
RadioButtonGroupName = "MyFirstGroup";
TreeViewItem parent = createCheckBoxInTree("parent", tree);
createRadioButtonsChildren("child1", parent);
createRadioButtonsChildren("child2", parent);
createRadioButtonsChildren("child3", parent);
}
如果可以解決您的問題,請記住將其標記為可接受的答案。
您可以為每個單選按鈕指定組名。
private void createRadioButtonsChildren(string content, TreeViewItem item)
{
TreeViewItem childRadio = new TreeViewItem()
{
Header = new RadioButton()
{
GroupName="Group1",
Content = content
}
};
item.Items.Add(childRadio);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.