Wpf “我的DataGrid绑定集合”列出现两次

Wpf “我的DataGrid绑定集合”列出现两次,wpf,datagrid,Wpf,Datagrid,我有这个视图模型: public class Person { public bool Selected; public string Name; public bool IsMaried; public DataTime bDay; } List<Person> col; 我有几个问题: 为了配置列宽度我在中添加了这些列,现在我可以看到我的数据网格列,但是如果我手动添加这些列,每个列都会出现两次 在我的Person类中,我有另一个成员-Dat

我有这个
视图模型

public class Person
{
    public bool Selected;
    public string Name;  
    public bool IsMaried;
    public DataTime bDay;
}

List<Person> col;
我有几个问题:

  • 为了配置列
    宽度
    我在
    中添加了这些列,现在我可以看到我的
    数据网格
    列,但是如果我手动添加这些列,每个列都会出现两次

  • 在我的
    Person
    类中,我有另一个成员-
    DataTime
    ,我不想在我的
    DataGrid
    中看到它,但要添加
    上下文菜单
    单击并显示该值。如何将其从数据网格中删除


  • 您需要设置
    AutoGenerateColumns=“False”
    ,并添加所有要手动显示的列。因此,您的数据网格可以是这样的:

    <DataGrid Grid.Row="1"
                Name="dataGrid"
                ItemsSource="{Binding col}"
                AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Name" Binding="{Binding Name}" />
            <DataGridCheckBoxColumn Header="Selected" Binding="{Binding Selected}"/>
            <DataGridCheckBoxColumn Header="IsMaried" Binding="{Binding IsMaried}"/>
        </DataGrid.Columns>
    </DataGrid> 
    

    set DataGrid property AutoGeneratedColumns=false。
    <DataGrid Grid.Row="1"
                Name="dataGrid"
                ItemsSource="{Binding col}"
                AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Name" Binding="{Binding Name}" />
            <DataGridCheckBoxColumn Header="Selected" Binding="{Binding Selected}"/>
            <DataGridCheckBoxColumn Header="IsMaried" Binding="{Binding IsMaried}"/>
        </DataGrid.Columns>
    </DataGrid>