微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

silverlight – ItemsControl中的多个RadioButton组

我正在开展一个显示调查答案的小项目.我有一个问题显示选项问题的答案.

正如您在下面的xaml提取中所看到的,我正在尝试按答案ID对单选按钮进行分组,因此每个答案对象只选择一个选项.

但是,下面的代码将整个调查中的所有单选按钮视为一个大型无线电按钮组的一部分,并且只允许为所有问题选择一个选项.

比方说,我有两个显示答案( – =未选中,=已选中):

我期待这样的事情:

正确答案为:

-Option1 – Option2 Option3

ANSWER2:

-Option1选项2 – 选项3

但是下面的xaml代码只允许我从两个问题中选择一个值而不是强制每个问题的互斥性.

<ItemsControl ItemsSource="{Binding Options}">
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal" />
                </ItemsPanelTemplate>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <RadioButton GroupName="{Binding AnswerId}" Content="{Binding Option}" IsChecked="{Binding IsSelected,Mode=OneWay}"/>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>

解决方法

我使用您的Xaml和以下代码创建了一个测试,它工作正常(允许从每组3个答案中选择一个):

您是否在绑定之前创建了所有答案选项?看起来GroupName不是依赖属性.

using System.Collections.Generic;
namespace PersonTests
{
    public class QuestionTestviewmodel
    {
        public IEnumerable<AnswerOption> Options { get; set; }

        public QuestionTestviewmodel()
        {
            this.Options = new List<AnswerOption>()
                            {
                                new AnswerOption(){AnswerId = 1,Option = "One A",IsSelected = false},new AnswerOption(){AnswerId = 1,Option = "One B",Option = "One C",new AnswerOption(){AnswerId = 2,Option = "Two A",Option = "Two B",Option = "Two C",IsSelected = false}
                            };
        }
    }

    public class AnswerOption
    {
        public int AnswerId { get; set; }
        public string Option { get; set; }
        public bool IsSelected { get; set; }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐