如何解决Xceed DateTimePicker ArgumentOutOfRangeException错误
问题描述:
我正在使用Xceed DateTimePicker作为绑定到Date属性的所有列的wpf DataGrid中的控件。每个这些列的定义如下:如何解决Xceed DateTimePicker ArgumentOutOfRangeException错误
<DataGrid.Columns>
<DataGridTemplateColumn
Header="Charge Date"
Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Path=ChargeDate, StringFormat=yyyy-MM-dd, Converter={StaticResource conDate}}"
HorizontalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<tk:DateTimePicker Value="{Binding Path=ChargeDate}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
我不认为这是有关我的问题,但为了完整起见,这里是采摘的造型:
<Style TargetType="{x:Type tk:DateTimePicker}">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="Minimum" Value="2017-01-01" />
<Setter Property="DisplayDefaultValueOnEmptyText" Value="False" />
<Setter Property="ShowButtonSpinner" Value="False" />
<Setter Property="TimePickerVisibility" Value="Collapsed" />
<Setter Property="AutoCloseCalendar" Value="True" />
<Setter Property="Format" Value="Custom" />
<Setter Property="FormatString" Value="yyyy-MM-dd" />
</Style>
这适用于已填充数据网格的单元格或当我在新行中输入数据时使用。然而,当我现有的行中单击空白单元格,我得到以下异常:
System.ArgumentOutOfRangeException: 'SelectedDate value is not valid.'
为什么只当我是错误的现有行中输入数据?当发生这种异常时,没有代码隐藏正在执行,所以我不知道在哪里寻找问题。
答
既然你已经在Minimum
属性设置为2017-01-01
,你也应该由默认值设定为相同的日期:
<Style TargetType="{x:Type tk:DateTimePicker}">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="Default" Value="2017-01-01" />
<Setter Property="Minimum" Value="2017-01-01" />
<Setter Property="DisplayDefaultValueOnEmptyText" Value="False" />
<Setter Property="ShowButtonSpinner" Value="False" />
<Setter Property="TimePickerVisibility" Value="Collapsed" />
<Setter Property="AutoCloseCalendar" Value="True" />
<Setter Property="Format" Value="Custom" />
<Setter Property="FormatString" Value="yyyy-MM-dd" />
</Style>
,你会得到ArgumentOutOfRangeException
如果默认值,或值小于最小值这很有道理。
优秀的观察 - 我将默认值添加到样式。但是,我得到同样的例外! – SezMe
当您收到异常时,您点击了哪个单元格?请提供您的问题的回购:https://*.com/help/mcve – mm8
好吧,让我把一个样本。 – SezMe