Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何修复Xceed DateTimePicker ArgumentOutOfRangeException错误_Wpf_Datagrid_Datetimepicker_Xceed - Fatal编程技术网

Wpf 如何修复Xceed DateTimePicker ArgumentOutOfRangeException错误

Wpf 如何修复Xceed DateTimePicker ArgumentOutOfRangeException错误,wpf,datagrid,datetimepicker,xceed,Wpf,Datagrid,Datetimepicker,Xceed,我使用Xceed DateTimePicker作为wpf数据网格中绑定到日期属性的所有列的控件。这些列中的每一列的定义如下: <DataGrid.Columns> <DataGridTemplateColumn Header="Charge Date" Width="100"> <DataGridTemplateColumn.CellTemplate> <DataTemplate>

我使用Xceed DateTimePicker作为wpf数据网格中绑定到日期属性的所有列的控件。这些列中的每一列的定义如下:

    <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>

为什么只有在现有行中输入数据时才会出现错误?发生此异常时没有执行代码隐藏,因此我不知道从何处查找问题。

由于您已将
最小值
属性设置为
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
,这非常合理。

我也有同样的问题。要修复此问题,请将ClipValueToMinMax属性设置为“True”。这将防止值低于最小值/高于最大值,而不会引发异常

<xceed:DateTimePicker Value="{Binding DateTime}"
                      Minimum="{Binding DateTimeMinimum}"
                      Maximum="{Binding DateTimeMaximum}"
                      ClipValueToMinMax="True"/>


观察效果极佳-我为样式添加了默认值。然而,我得到了同样的例外!当您收到异常时,您正在单击哪个单元格?请提供你发行的债券的回购协议:好的,让我做一个样本。更新:我没有忘记这个问题。我已经将解决方案剥离到了最基本的部分,例如删除对数据库的所有调用,在这样做的过程中,我得到了许多尚未追踪到的绑定错误。但我还在努力。也许等我弄明白了,我会发现这里列出的问题。
<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>
<xceed:DateTimePicker Value="{Binding DateTime}"
                      Minimum="{Binding DateTimeMinimum}"
                      Maximum="{Binding DateTimeMaximum}"
                      ClipValueToMinMax="True"/>