C# 如何使Silverlight 4中的DataGrid显示无选择?

C# 如何使Silverlight 4中的DataGrid显示无选择?,c#,silverlight,silverlight-4.0,silverlight-toolkit,C#,Silverlight,Silverlight 4.0,Silverlight Toolkit,我有一个数据网格,我只想在其中显示数据。我不想选择任何东西。但是,它总是希望选择第一行的第一列 以下是XAML: <myDataGrid:DataGrid x:Name="grdPerson" AutoGenerateColumns="False" Height="478" Width="302" IsReadOnly="True" RowBackground="Black" AlternatingRowBackground

我有一个数据网格,我只想在其中显示数据。我不想选择任何东西。但是,它总是希望选择第一行的第一列

以下是XAML:

<myDataGrid:DataGrid 
    x:Name="grdPerson" 
    AutoGenerateColumns="False"  
    Height="478" 
    Width="302"
    IsReadOnly="True"
    RowBackground="Black"
    AlternatingRowBackground="Gray"
    GridLinesVisibility="None"
    HeadersVisibility="Column"
    Foreground="White"
    CanUserReorderColumns="False"
    CanUserResizeColumns="False"
    CanUserSortColumns="False"
    IsEnabled="False"
    AreRowDetailsFrozen="True"
    AreRowGroupHeadersFrozen="True">
    <myDataGrid:DataGrid.Columns>
        <myDataGrid:DataGridTextColumn 
            IsReadOnly="True"
            Header="Date/Time" 
            Width="125" 
            Binding="{Binding Date}" />
        <myDataGrid:DataGridTemplateColumn 
            IsReadOnly="True"
            Header="Person" 
            Width="175">
            <myDataGrid:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="{Binding FirstName}" />
                        <TextBlock Text="{Binding LastName}" />
                    </StackPanel>
                </DataTemplate>
            </myDataGrid:DataGridTemplateColumn.CellTemplate>
        </myDataGrid:DataGridTemplateColumn>
    </myDataGrid:DataGrid.Columns>
</myDataGrid:DataGrid>

下面是填充网格的代码

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime Date { get; set; }

    public Person(DateTime date, string firstName, string lastName)
    {
        Date = date;
        FirstName = firstName;
        LastName = lastName;
    }
}

// in the MainPage.xaml
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    List<Person> list = new List<Person>();
    list.Add(new Person(date: DateTime.Parse("4/14/2010 3:18 PM"), firstName: "John", lastName: "Doe"));
    list.Add(new Person(date: DateTime.Parse("4/14/2010 5:18 am"), firstName: "Jane", lastName: "Doe"));
    grdPerson.ItemsSource = list;
    grdPerson.SelectedIndex = -1;
}
公共类人物
{
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共日期时间日期{get;set;}
公共人物(日期时间日期、字符串名字、字符串姓氏)
{
日期=日期;
名字=名字;
LastName=LastName;
}
}
//在MainPage.xaml中
已加载无效主页(对象发送器、路由目标)
{
列表=新列表();
添加(新的人(日期:DateTime.Parse(“4/14/2010 3:18 PM”),名字:“John”,姓氏:“Doe”);
添加(新的人物(日期:DateTime.Parse(“4/14/2010 5:18 am”),名字:“Jane”,姓氏:“Doe”);
grdPerson.ItemsSource=列表;
grdPerson.SelectedIndex=-1;
}
当DataGrid显示时,这就是它的外观。。。

如您所见,第一行的第一个单元格是白色的,因为它已被选中


有没有办法让它不被选中第一行的第一列?

我以前是通过编辑控件的模板来做到这一点的,这样选中的行看起来就像普通的行一样

当您等待取消选中网格行时,您应该尝试选择editem Property=null