DataGridでデータをソートしたときのラジオボタンのバグ

以下の条件を満たすと、DataGrid内に配置されたラジオボタンのチェックが
外れることがある。

  • RadioButtonのIsCheckedプロパティにデータバインディングを設定
  • RadioButtonのGroupNameプロパティを設定
  • ラジオボタンをチェック
  • 列はどこでも良いので列ヘッダーをクリックし、ソートを実施
  • 降順ソート
[XAML]
<UserControl x:Class="NXDataGridTest.SilverlightControl2"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">
    <Grid x:Name="LayoutRoot" Background="White">
        <data:DataGrid Height="200" Width="300">
            <data:DataGrid.Columns>
                <data:DataGridTemplateColumn Header="選択">
                    <data:DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <RadioButton IsChecked="{Binding IsSelect, Mode=TwoWay}" GroupName="Grp1"/>
                        </DataTemplate>
                    </data:DataGridTemplateColumn.CellEditingTemplate>
                </data:DataGridTemplateColumn>
            </data:DataGrid.Columns>
        </data:DataGrid>
    </Grid>
</UserControl>


GroupNameを設定しなければチェックは消えないが、それでは複数選択できてしまうため
意味がない。


解決策を模索中(てか、バグなんだからそのうち修正がくるだろうが)


参考URL:http://silverlight.codeplex.com/workitem/5268