是否可以使用两个日期选择器选择日期范围?第一个datepicker表示开始日期,第二个datepicker表示结束日期。
选择这些日期后,是否可以使用包含这些日期的标题生成datagrid列?
<DataGrid x:Name="dgTemplate" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn>
<DataGridTextColumn.Header>
<ComboBox ItemsSource="{Binding DataContext.Employees, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" SelectedValue="{Binding DataContext.SelectedEmployee, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Mode=TwoWay}" IsTextSearchEnabled="True" IsEditable="True" DisplayMemberPath="EmpName" Style="{DynamicResource MaterialDesignComboBox}" materialDesign:HintAssist.Hint="Employee Name"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
<!--DataGridDateColumns-->
<DataGridTextColumn Header="Total"/>
<DataGridTextColumn Header="Rate"/>
<DataGridTextColumn Header="Amount"/>
<DataGridTextColumn Header="Deduction"/>
</DataGrid.Columns>
</DataGrid>
评论部分应该是列出现的位置。标题中的日期应采用此格式&#34; dd / mm / yyyy&#34;,可以是&#34; Mon 01 / Feb / 2017&#34;或&#34; 01/02 / 2017&#34;。
但我需要的最重要的方面是选择范围后出现的列。
答案 0 :(得分:0)
使用循环(for,while等)迭代范围内的日期。为每个日期创建并添加新列。
这样的事情可以解决问题:
DateTime startDate = (DateTime)dtpStartDate.SelectedDate;
DateTime endDate = (DateTime)dtpEndDate.SelectedDate;
if (startDate != null && endDate != null)
{
while (startDate < endDate)
{
DataGridTextColumn newColumn = new DataGridTextColumn();
newColumn.Header = startDate.ToShortDateString();
dgTemplate.Columns.Add(newColumn);
startDate = startDate.AddDays(1);
}
}