效果如下图:
创建Widnows资源:
<Style x:Key="AltColBackground" TargetType="DataGridCell">
<Setter Property="Background" Value="LightGreen"/>
<Setter Property="BorderBrush" Value="LightSkyBlue"/>
</Style>
日期字段增加修饰器:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding ReleaseDateTime,StringFormat=yyyy}" TextDecorations="Underline"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding ReleaseDateTime}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
URL 字段添加单元格风格:
<DataGridHyperlinkColumn Header="URL" Binding="{Binding URL}"
CellStyle="{StaticResource AltColBackground}"
></DataGridHyperlinkColumn>
通过操作界面,添加行,将行数据写入到文本文件中
添加一行测试数据
添加编辑行事件
RowEditEnding="GRD_RowEditEnding"
每个行字段添加属性触发
UpdateSourceTrigger=PropertyChanged
后台添加
void AddNewSongs(Song s)
{
var file = System.IO.Path.Combine($"{AppDomain.CurrentDomain.BaseDirectory}", "songs.txt");
File.AppendAllText(file, $"{s.Id},{s.Title},{s.Genre},{s.Artist},{s.MovieTitle},{s.ReleaseDateTime},{s.URL}\n");
}
private void GRD_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
Song newSong = e.Row.DataContext as Song;
AddNewSongs(newSong);
}
这样在UI添加行后,就自动将字段值写入到了后台文件中。
网友评论