文章目录
优化设计TodoView
修复新增项目无法编辑问题
更新MyToDo.Api/Service/ToDoService.cs
public async Task<ApiReponse> AddAsync(Todo model)
{
try
{
var todo = mapper.Map<Todo>(model);
await work.GetRepository<Todo>().InsertAsync(todo);
if (await work.SaveChangesAsync() > 0)
return new ApiReponse(true, todo);
return new ApiReponse(false);
}
catch (Exception ex)
{
return new ApiReponse(false, ex);
}
}
更新MyToDo.Api/Service/MemoService.cs
public async Task<ApiReponse> AddAsync(Memo model)
{
try
{
var memo = mapper.Map<Memo>(model);
await work.GetRepository<Memo>().InsertAsync(memo);
if (await work.SaveChangesAsync() > 0)
return new ApiReponse(true, memo);
return new ApiReponse(false);
}
catch (Exception ex)
{
return new ApiReponse(false, ex);
}
}
增加了对完成状态的区分
更新MyToDo.Api/Service/TodoView.xaml
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border MinWidth="200" Margin="10">
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding Status}" Value="0">
<Setter Property="Background" Value="#1E90FF" />
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="1">
<Setter Property="Background" Value="#3CB371" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Grid MinHeight="150">
增加了选项卡删除功能
更新删除请求URI
更新MyToDo.Api/Service/Baservice.cs
public async Task<ApiResponse> DeleteAsync(int id)
{
BaseRequest request = new BaseRequest();
request.Method = RestSharp.Method.DELETE;
request.Route = $"api/{ServiceName}/Delete?todoid={id}";
return await client.ExecuteAsync(request);
}
添加删除命令并初始化
更新文件:MyToDo/ViewModel/TodoViewModel.cs
添加内容:
/// <summary>
/// 删除项
/// </summary>
public DelegateCommand<ToDoDto> DeleteCommand { get; set; }
/// <summary>
/// 删除指定项
/// </summary>
/// <param name="dto"></param>
async private void DeleteItem(ToDoDto dto)
{
var delres = await service.DeleteAsync(dto.Id);
if (delres.Status)
{
var model = TodoDtos.FirstOrDefault(t => t.Id.Equals(dto.Id));
TodoDtos.Remove(dto);
}
}
更新内容
public TodoViewModel(ITodoService service,IContainerProvider provider)