我有View Model
:
public class Person
{
public bool Selected;
public string Name;
public bool IsMaried;
public DataTime bDay;
}
List<Person> col;
这是我的DataGrid
:
<DataGrid
Grid.Row="1"
Name="dataGrid"
ItemsSource="{Binding col}">
<DataGrid.Columns>
<DataGridTemplateColumn Width="60" Header="Select" SortMemberPath="IsSelected">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<CheckBox IsChecked="{Binding Selected}" />
<Image/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn
Header="Name"
Binding="{Binding Name}"
Width="180"/>
</DataGrid.Columns>
</DataGrid>
我有几个问题:
为了配置列Width
,我在<DataGrid.Columns>
内添加了这些列,现在我可以看到我的Data Grid
列,但如果我手动添加此列,则每列都会出现两次。< / p>
在我的Person
课程中,我有另一位成员 - DataTime
,我不想在DataGrid
内看到,但添加Context Menu
点击然后显示这个价值。如何从DataGrid
答案 0 :(得分:0)
您需要设置AutoGenerateColumns="False"
并添加要手动显示的所有列。所以你的DataGrid可能是这样的:
<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>