具有ItemSource
作为ObservableCollection
的WPF DataGrid,其[日期]单元格绑定到集合的每个对象中的DateTime Date
属性。 Date
属性已经默认为DateTime.Now
,因此该值已经在基础属性中:
public DateTime Date { get; set; } = DateTime.Now;
在单元格中单击后,将显示[Date]值,并且DatePicker正确突出显示当前日期。
但是我希望默认情况下DataGrid中的新行自动显示,因此当接受默认的当前日期时,用户甚至不必触摸该字段。从该图像和XAML中可以看出,我成功地将FallBackValue='N'
用于[Cl],并将FallBackValue='$0.00'
用于[Amount]。但是,我尝试使用FallbackValue={x:Static sys:DateTime.Now}
作为[日期],但它仍然为空。
...
xmlns:sys="clr-namespace:System;assembly=mscorlib"
...
<DataGrid Visibility="{Binding BankDataGridVisibility}" ItemsSource="{Binding BankTransactions}" AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="10,50,10,10" RowHeaderWidth ="0" >
<DataGrid.Columns>
...
<DataGridTemplateColumn Header="Date" Width="100" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Date, FallbackValue={x:Static sys:DateTime.Now}, StringFormat=\{0:MM/dd/yyyy\}}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding Date}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
...
</DataGrid.Columns>