我有一个问题是关于以下答案的扩展。它指出单选按钮的GroupName具有非常广泛的范围,通常最好让容器自动分配GroupName。
然而,如果我不使用GroupName,则每个单独的RadioButton被视为自己的组。我只能假设它是使用DataTemplate或CellTemplate作为“父级”,以便自动分配GroupName。
我有一个Question列表在StackPanel中显示。每个Question都显示在一个UserControl中。每个Question包含一个Answers的ListView。每个Answer都有一个布尔属性,表示已选择答案,该属性绑定到DataTemplate内的RadioButton。
我的精简XAML如下:
我认为我没有其他选择,只能使用ListView,因为我需要能够关闭和打开其他列,并且需要显示两个或更多答案。
有没有办法告诉单选按钮它是UserControl的一部分,而不是DataTemplate,以便于GroupName?
我考虑为每个UserControl分配一个GUID,并将RadioButtons的GroupName绑定到GUID的字符串上,但这似乎过度和笨拙。
编辑:为了视觉参考,UI大致如下(我的注释在括号内):
(问题的StackPanel绑定到问题集合)
https://dev59.com/0G025IYBdhLWcg3wW0oc#6062697
如果我使用静态的GroupName,那么所有的RadioButton共享一个组。(如链接中所示的答案。)然而,如果我不使用GroupName,则每个单独的RadioButton被视为自己的组。我只能假设它是使用DataTemplate或CellTemplate作为“父级”,以便自动分配GroupName。
我有一个Question列表在StackPanel中显示。每个Question都显示在一个UserControl中。每个Question包含一个Answers的ListView。每个Answer都有一个布尔属性,表示已选择答案,该属性绑定到DataTemplate内的RadioButton。
我的精简XAML如下:
<ListView ItemsSource="{Binding AnswerList}" >
<ListView.View>
<GridView>
<!-- Other columns here -->
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<RadioButton IsChecked="{Binding Path=AnswerChecked}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
我认为我没有其他选择,只能使用ListView,因为我需要能够关闭和打开其他列,并且需要显示两个或更多答案。
有没有办法告诉单选按钮它是UserControl的一部分,而不是DataTemplate,以便于GroupName?
我考虑为每个UserControl分配一个GUID,并将RadioButtons的GroupName绑定到GUID的字符串上,但这似乎过度和笨拙。
编辑:为了视觉参考,UI大致如下(我的注释在括号内):
(问题的StackPanel绑定到问题集合)
- 问题控制(包含绑定到答案集合的ListView, '|' 分隔列)
- [ ] | 答案1(未选中的答案对象,文本为“答案1”)
- [ ] | 答案2
- [*] | 答案3(已选中的答案对象,文本为“答案3”)
- 第16任总统是谁
- [ ] | 卡尔·马克思
- [*] | 亚伯拉罕·林肯
- [ ] | 理查德·尼克松
- 一个摩尔氢的重量是多少
- [ ] | 10克
- [ ] | 0.1克
- [ ] | 1克