如何在绑定数据网格中插入非标准行 - WPF

时间:2015-05-27 07:45:43

标签: c# wpf xaml datagrid

我有一个wpf数据网格,它绑定到一个数据集合,其中的列和绑定在xaml中声明。

我想要做的是让第一行允许用户对列的其余部分进行批量更改。

因此,例如,在用户可以在顶部组合框中选择一个值,单击该按钮,它将调用一个事件处理程序,该处理程序将更改基础数据,并有机会反映在列中的所有组合框中。

enter image description here

如果无法添加自定义行,我想我可能会在列标题和行之间创建一个空格,并在创建的空间中放置“第一行”。

如果可能,或者您需要更多信息,请告知我们。

1 个答案:

答案 0 :(得分:1)

您可以覆盖网格内容模板,并为您的自定义行创建一个包含一个网格的堆栈面板,为所有其他行创建另一个网格,然后可以使用他们的Outlook来使它们看起来像您想要的那样..

这是上述解决方案的一个非常基本的代码----

<Grid>
    <ScrollViewer>
        <StackPanel Orientation="Vertical">
            <DataGrid ItemsSource="{Binding list1}">
                <DataGrid.Columns>
                    <DataGridTemplateColumn Header="ComboCol" Width="50">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ComboBox Text="Bind Your Combo Box" IsEditable="True"></ComboBox>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
            </DataGrid>
            <DataGrid ItemsSource="{Binding list2}" HeadersVisibility="Row">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Line1" Binding="{Binding Path=.}" Width="50"/>
                    <DataGridTextColumn Header="Line2" Binding="{Binding Path=.}" Width="50"/>
                </DataGrid.Columns>
            </DataGrid>
            <DataGrid/>
        </StackPanel>
    </ScrollViewer>
</Grid>