DataGrid WPF中的HeaderTemplate

Pro*_*ton 1 wpf binding wpf-controls

我需要在我的datagrid标题中为其中一列提供一种日期选择器.当用户从此标题日期选择器中选择日期时,系统应将此日期绑定到具有日期的所有列单元格.
有办法吗?

Dav*_*vid 7

最好的方法是将标头的dataTemplate设置为包含DatePicker的自定义模板,DatePicker的Date绑定到DataGrid的DataContext属性之一,然后将此特定列中的单元格绑定到同一属性.

这样的事情:

    <DataGrid>
        <DataGridTextColumn Binding="{Binding DataContext.myDate, RelativeSource={RelativeSource AncestorType=DataGrid}, Mode=OneWay}" >
            <DataGridTextColumn.HeaderStyle>
                <Style TargetType="{x:Type DataGridColumnHeader}">
                    <Style.Setters>
                        <Setter Property="ContentTemplate">
                            <Setter.Value>
                                <DataTemplate>
                                    <DatePicker SelectedDate={Binding myDate, Mode=TwoWay} />
                                </DataTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style.Setters>
                </Style>
            </DataGridTextColumn.HeaderStyle>
        </DataGridTextColumn>
    </DataGrid>
Run Code Online (Sandbox Code Playgroud)

免责声明:我没有尝试过,也不确定{Binding DataContext.myDate, RelativeSource={RelativeSource AncestorType=DataGrid}.你可能会做一些调整,但总的来说,这应该会让你开始如何进行