我制作了一个DataTemplate,它将自动生成一些问题(从我的dataview加载)。每个问题都有四个单选按钮,我将所有四个按钮分组到GroupName上。
我的问题是-如果我有2或3个问题,则每当我检查一个问题的单选按钮时,上面问题的单选按钮都不会被选中。有人对此有解决方案吗?
这是我的XAML:
<ItemsControl Name="itmCntrl" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" ></WrapPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Name="stk">
<StackPanel Margin="5,2,0,0">
<WrapPanel Margin="10,10,10,5" Height="Auto">
<TextBlock TextWrapping="Wrap" x:Name="tbC" FontSize="18" FontFamily="Times New Roman" FontWeight="Bold" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="Black" Text="Question : "/>
<TextBlock TextWrapping="Wrap" Text="{Binding NOIDUNG}" FontSize="18" FontFamily="Times New Roman" FontWeight="Bold" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="Black"/>
</WrapPanel>
<WrapPanel Margin="10,5,10,5" Height="Auto">
<RadioButton x:Name="rdoA" GroupName="DA"/>
<TextBlock TextWrapping="Wrap" Name="A" Text="{Binding A}" FontSize="15" FontFamily="Times New Roman" FontWeight="Bold" VerticalAlignment="Center" Foreground="Black" Margin="3,0,0,0"/>
<RadioButton x:Name="rdoB" GroupName="DA" Margin="10,0,0,0"/>
<TextBlock TextWrapping="Wrap" Name="B" Text="{Binding B}" FontSize="15" FontFamily="Times New Roman" FontWeight="Bold" HorizontalAlignment="Right" VerticalAlignment="Center" Foreground="Black" Margin="3,0,0,0"/>
</WrapPanel>
<WrapPanel Margin="10,5,10,5" Height="Auto">
<RadioButton x:Name="rdoC" GroupName="DA"/>
<TextBlock TextWrapping="Wrap" Name="C" Text="{Binding C}" FontSize="15" FontFamily="Times New Roman" FontWeight="Bold" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="Black" Margin="3,0,0,0"/>
<RadioButton x:Name="rdoD" GroupName="DA" Margin="10,0,0,0"/>
<TextBlock TextWrapping="Wrap" Name="D" Text="{Binding D}" FontSize="15" FontFamily="Times New Roman" FontWeight="Bold" HorizontalAlignment="Right" VerticalAlignment="Center" Foreground="Black" Margin="3,0,0,0"/>
</WrapPanel>
</StackPanel>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
该RadioButton.GroupName
Property是一个DependencyProperty
,因此这意味着您可以为每个组数据绑定唯一值:
<DataTemplate>
<StackPanel Name="stk">
<StackPanel Margin="5,2,0,0">
<WrapPanel Margin="10,10,10,5" Height="Auto">
<TextBlock TextWrapping="Wrap" x:Name="tbC" FontSize="18" FontFamily="Times New Roman" FontWeight="Bold" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="Black" Text="Question : "/>
<TextBlock TextWrapping="Wrap" Text="{Binding NOIDUNG}" FontSize="18" FontFamily="Times New Roman" FontWeight="Bold" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="Black"/>
</WrapPanel>
<WrapPanel Margin="10,5,10,5" Height="Auto">
<RadioButton x:Name="rdoA" GroupName="{Binding GroupName}"/>
<TextBlock TextWrapping="Wrap" Name="A" Text="{Binding A}" FontSize="15" FontFamily="Times New Roman" FontWeight="Bold" VerticalAlignment="Center" Foreground="Black" Margin="3,0,0,0"/>
<RadioButton x:Name="rdoB" GroupName="{Binding GroupName}" Margin="10,0,0,0"/>
<TextBlock TextWrapping="Wrap" Name="B" Text="{Binding B}" FontSize="15" FontFamily="Times New Roman" FontWeight="Bold" HorizontalAlignment="Right" VerticalAlignment="Center" Foreground="Black" Margin="3,0,0,0"/>
</WrapPanel>
<WrapPanel Margin="10,5,10,5" Height="Auto">
<RadioButton x:Name="rdoC" GroupName="{Binding GroupName}"/>
<TextBlock TextWrapping="Wrap" Name="C" Text="{Binding C}" FontSize="15" FontFamily="Times New Roman" FontWeight="Bold" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="Black" Margin="3,0,0,0"/>
<RadioButton x:Name="rdoD" GroupName="{Binding GroupName}" Margin="10,0,0,0"/>
<TextBlock TextWrapping="Wrap" Name="D" Text="{Binding D}" FontSize="15" FontFamily="Times New Roman" FontWeight="Bold" HorizontalAlignment="Right" VerticalAlignment="Center" Foreground="Black" Margin="3,0,0,0"/>
</WrapPanel>
</StackPanel>
</StackPanel>
</DataTemplate>
要使此示例正常工作,您只需要GroupName
在数据绑定到的视图模型中添加一个属性DataTemplate
,即可。具有对象A
,B
,C
和D
在属性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句