C# 如何使Silverlight 4中的DataGrid显示无选择?
我有一个数据网格,我只想在其中显示数据。我不想选择任何东西。但是,它总是希望选择第一行的第一列 以下是XAML: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
<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