【问题标题】:Datagrid Minimum Date in DateTime Field日期时间字段中的数据网格最小日期
【发布时间】:2013-08-29 19:53:45
【问题描述】:

我的数据网格的单元格中有一个日期选择器,我想将日期设置为某个默认日期,这样当我在数据网格中创建新行时,它不会创建 datetime2 日期“1/1/0001” .这是我的数据网格模板。

   <DataGridTemplateColumn Header="Date Filled">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Path=DateFilled,Mode=TwoWay}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                    <DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <DatePicker SelectedDate="{Binding Path=DateFilled,Mode=TwoWay}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
     </DataGridTemplateColumn>

我该怎么做呢?谢谢。

【问题讨论】:

    标签: wpf datagrid


    【解决方案1】:

    我认为最好的方法是在视图模型中分配默认值。例如:

    public DateTime DateFilled
    {
        get { return _dateFilled; }
        set 
        { 
            _dateFilled = value;  
            RaisePropertyChanged("DateFilled");
        }
    }
    private DateTime _dateFilled = DateTime.Today;
    

    或者,您可以将 view-model 属性设为可为空的 DateTime?。这样,你可以使用绑定的TargetNullValue:SelectedDate="{Binding Path=DateFilled,Mode=TwoWay,TargetNullValue={x:Static DateTime.Now}}"

    【讨论】:

    • 尝试应用 {x:Static } 时出现此错误:Windows Presentation Foundation (WPF) 项目不支持 DateTime。您需要在乞求中添加 sys: 命名空间...另外 - 它不适用于我的非空字段.....
    猜你喜欢
    • 2015-12-12
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多