我想知道在删除List的记录后,我可以更新文件集
private ObservableCollection<ProfileModel> _profileItems = null;
public ObservableCollection<ProfileModel> ProfileItems
模型视图:
private void ProfileModel_DeleteItemEvent(ProfileModel profileModel)
{
ProfileItems.Remove(profileModel);
if (!ProfileItems.Any())
{
ShowLoginForm = true;
ShowProfileItems = false;
}
//here wants to insert code
}
MENAGER:
private void SaveProfile()
{
if (ProfileItems == null) ProfileItems = new List<ProfileModel>();
if(!ProfileItems.Contains(CurrentUser)) ProfileItems.Add(CurrentUser);
var list = Newtonsoft.Json.JsonConvert.SerializeObject(ProfileItems);
FileManagerInstance.WriteTextToFile(FileManager.FileType.ProfileList, list);
}
public async Task<bool> SetProfileList()
{
var content = await FileManagerInstance.ReadFile(FileManager.FileType.ProfileList);
if(string.IsNullOrEmpty(content))
{
ProfileItems = new List<ProfileModel>();
return false;
}
try
{
ProfileItems = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ProfileModel>>(content);
}
catch(Newtonsoft.Json.JsonException ex)
{
_log.MessageInDebug("Result content is bad!");
if (Debugger.IsAttached)
{
throw ex;
}
}
return ProfileItems != null && ProfileItems.Any();
}
答案 0 :(得分:0)
您需要为可观察集合添加事件侦听器,如下所示:
ObservableCollection<ProfileModel> myObservable = new ObservableCollection<ProfileModel>();
myObservable.CollectionChanged += (sender, e) =>
{
if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
{
// do stuff
}
};