0

単にデータを表示したいDataGridがあります。何も選択したくありません。ただし、常に最初の行の最初の列を選択する必要があります。

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;
}

DataGridが表示されると、次のようになります... http://img405.yfrog.com/img405/5534/4192010102546am.png

ご覧のとおり、最初の行の最初のセルは選択されているため白です。

最初の行の最初の列が選択されないようにする方法はありますか?

4

1 に答える 1

2

選択した行が通常の行のように見えるように、コントロールのテンプレートを編集することで過去にこれを行いました

于 2010-04-19T14:44:52.367 に答える