WPF单选按钮显示错误的组绑定行为

时间:2016-07-22 21:47:40

标签: c# wpf mvvm

当我在网格中使用多个RadioButton控件时,我正在使用.NET Framework 4.5并观察一些奇怪的行为。我希望能够单独选择和取消选择每个RadioButton,因为我没有使用GroupName属性将RadioButtons绑定在一起。但是,我一次只能选择一个RadioButton。我怎么能抑制这种行为?这是一个最小的例子:

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <RadioButton Grid.Row="0" Grid.Column="0" ></RadioButton>
        <RadioButton Grid.Row="1" Grid.Column="0" ></RadioButton>
        <RadioButton Grid.Row="2" Grid.Column="0" ></RadioButton>
    </Grid>

1 个答案:

答案 0 :(得分:3)

从技术上讲,这是预期的行为,但不是你想象的那样。 GroupName是一个预期只有string且实际默认为string.Empty""的属性。实际上该组有一个值,它只是一个空字符串,而WPF将它们作为同一分组的一部分进行处理。来自微软:

  

单选按钮所属的组的名称。默认是   一个空字符串(“”)。

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.radiobutton.groupname(v=vs.110).aspx

P.S。复选框不适合这种情况吗?