我所做的是设置具有多行选择支持的datagrid。但问题是,当AutoGenerateColumns
设置为false时,多行选择有效,但是我从数据库上传的数据不会显示。当我将AutoGenerateColumns
切换为true时,我可以看到数据,但单击多选功能将停止工作。
这是xaml代码:
<DataGrid x:Name="Hello" ItemsSource="{Binding Path=Albums}"
Grid.Row="0"
AutoGenerateColumns="True" SelectionMode="Extended" Loaded="dgCustomers_Loaded">
<DataGrid.Columns>
<DataGridCheckBoxColumn ElementStyle="{DynamicResource MetroDataGridCheckBox}"
EditingElementStyle="{DynamicResource MetroDataGridCheckBox}"
Header="IsSelected"
Binding="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Path=IsSelected, Mode=OneWay}"
/>
</DataGrid.Columns>
</DataGrid>
这就是我填写datagrid的方式:
private void dgCustomers_Loaded(object sender, RoutedEventArgs e)
{
var grid = sender as DataGrid; //Creates its self as an object
grid.ItemsSource = CustomerDataAdapter.GetData(); //Shows all of the data in the Customer table
}
答案 0 :(得分:0)
我认为你不能同时自动生成列和在XAML中明确指定列。我相信它是其中之一。我相信你必须将AutoGenerateColumns
设置为false&amp;指定每个列&amp;它的绑定。