【发布时间】:2022-09-28 15:49:37
【问题描述】:
我有两个数据网格。第一个是关于时间跟踪的概述。第二个显示了一些细节。
例如: 第一个数据网格包含员工工作的每一天。第二个数据网格包含一天的时间戳。
但是,当我添加新的冲压行时,数据网格中的控件为空。这不是一个真正的问题,但日期选择器显示日期 01/01/0001。
我想要的是当我添加一个新行时,日期字段应该填充第一个数据网格中的日期。
看法:
<DataGrid Grid.Column=\"0\"
IsReadOnly=\"True\"
AutoGenerateColumns=\"False\"
Grid.Row=\"0\"
x:Name=\"DgStundenView\"
Margin=\"0 0 10 0\"
SelectedItem=\"{Binding SelectedItem}\"
ItemsSource=\"{Binding TimeOverviewList}\">
<DataGrid.Columns>
<DataGridTextColumn Header=\"Wochentag\" Binding=\"{Binding Wochentag}\" />
<DataGridTextColumn Header=\"Datum\" Binding=\"{Binding Tag}\" />
<DataGridTextColumn Header=\"Arbeitszeit Soll\" Binding=\"{Binding ArbeitszeitInStunden}\" />
<DataGridTextColumn Header=\"Arbeitszeit gesamt\" Binding=\"{Binding GesamtDauerInStunden}\" />
<DataGridTextColumn Header=\"Pausenzeit\" Binding=\"{Binding Pausenzeit}\" />
<DataGridTextColumn Header=\"Pausendifferenz\" Binding=\"{Binding PausenDifferenzInStunden}\" />
<DataGridTextColumn Header=\"Arbeitszeit inkl. Pause\" Binding=\"{Binding TatsaechlicheDauerInStunden}\" />
<DataGridCheckBoxColumn Header=\"Status\" Binding=\"{Binding StempelungVorhanden,Mode=OneWay}\" />
<DataGridTextColumn Header=\"Info\" Binding=\"{Binding Info}\" />
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType=\"DataGridRow\">
<Style.Triggers>
<DataTrigger Binding=\"{Binding Wochentag}\" Value=\"Sa\">
<Setter Property=\"Background\" Value=\"LightGray\" />
</DataTrigger>
<DataTrigger Binding=\"{Binding Wochentag}\" Value=\"So\">
<Setter Property=\"Background\" Value=\"LightGray\" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
<DataGrid Grid.Column=\"0\"
Grid.Row=\"1\"
x:Name=\"DgStempelungen\"
Margin=\"0 10 10 0\"
AutoGenerateColumns=\"False\"
CanUserAddRows=\"True\"
SelectedItem=\"{Binding SelectedValue}\"
ItemsSource=\"{Binding TimeDetailList}\">
<DataGrid.Resources>
<x:Array x:Key=\"Reasons\" Type=\"system:String\">
<system:String>NICHT ANWENDBAR</system:String>
<system:String>KRANK</system:String>
<system:String>GANZER TAG URLAUB</system:String>
</x:Array>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header=\"ID\" IsReadOnly=\"True\" Binding=\"{Binding Id}\"/>
<DataGridTemplateColumn Header=\"KOMMEN DATUM\">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker SelectedDate=\"{Binding ComeBooking}\"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header=\"KOMMEN UHRZEIT\">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<materialDesign:TimePicker Text=\"{Binding ComeBookingTime, StringFormat=t}\"
Is24Hours=\"True\">
</materialDesign:TimePicker>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header=\"GEHEN DATUM\">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker SelectedDate=\"{Binding GoBooking}\"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header=\"GEHEN UHRZEIT\">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<materialDesign:TimePicker Text=\"{Binding GoBookingTime, StringFormat=t}\"
Is24Hours=\"True\">
</materialDesign:TimePicker>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridComboBoxColumn Header=\"GRUND\"
ItemsSource=\"{StaticResource Reasons}\"
TextBinding=\"{Binding Info}\"/>
查看模型
[CanBeNull] private ClassTimeTrackingDayStamp _selectedItem;
[CanBeNull]
public ClassTimeTrackingDayStamp SelectedItem
{
get { return _selectedItem; }
set
{
_selectedItem = value;
OnPropertyChanged();
if (_selectedItem != null)
TimeDetailList = new ObservableCollection<ClassTimeTrackingTimeStamp>(_selectedItem.Stempelungen);
}
}
private ObservableCollection<ClassTimeTrackingDayStamp> _timeOverviewList;
public ObservableCollection<ClassTimeTrackingDayStamp> TimeOverviewList
{
get { return _timeOverviewList; }
set
{
_timeOverviewList = value;
OnPropertyChanged();
}
}
[CanBeNull] private ObservableCollection<ClassTimeTrackingTimeStamp> _timeDetailList;
[CanBeNull]
public ObservableCollection<ClassTimeTrackingTimeStamp> TimeDetailList
{
get { return _timeDetailList; }
set
{
_timeDetailList = value;
OnPropertyChanged();
}
}
模型
public class ClassTimeTrackingTimeStamp : ViewModelBase
{
public DateTime ComeBooking { get; set; }
public DateTime GoBooking { get; set; }
public TimeSpan ComeBookingTime { get; set; }
public TimeSpan GoBookingTime { get; set; }
public int Id { get; set; }
public string Info { get; set; }
}
谢谢您的帮助 :)
此致 莱文
-
您的意思是当用户将新行添加到第二个 DataGrid 时您想要默认值?