gpt4 book ai didi

windows-phone-7 - Caliburn Micro 中的墓碑

转载 作者:行者123 更新时间:2023-12-02 16:27:11 24 4
gpt4 key购买 nike

我有带有项目(ObservableCollection)的MainPageViewModel。在此页面上,我还有一个按钮,用于将新项目添加到项目中。

public class MainPageViewModel : Screen {
private DateTime StartActivity = DateTime.MinValue;

public ObservableCollection<ActivityViewModel> Items { get; set; }

public MainPageViewModel(INavigationService navigationService) {
this.Items = new ObservableCollection<ActivityViewModel>();
}

public void AddActivity(string activityName) {
if (this.Items.Count == 0) {
this.Items.Add(new ActivityViewModel() {
Activity = activityName,
Duration = 0
});

StartActivity = DateTime.Now;
}
else {
this.Items[this.Items.Count - 1].Duration = 10;
this.Items.Add(new ActivityViewModel() {
Activity = activityName,
Duration = 0
});

StartActivity = DateTime.Now;
}
}
}

添加新项目效果非常好。

但是当应用程序在逻辑删除后激活时,项目中的数据不会恢复。尝试为我的 ViewModel 创建 StorageHandler。没有帮助。我做错了什么?

public class MainPageViewModelStorage : StorageHandler<MainPageViewModel> {
public override void Configure() {
Property(x => x.Items)
.InAppSettings()
.RestoreAfterActivation();
}
}

还尝试为类和属性添加 [SurviveTombstone],但 Visual Studio 不知道该属性。

public class ActivityViewModel : PropertyChangedBase {
private string _activity;
public string Activity {
get {
return _activity;
}
set {
if (value != _activity) {
_activity = value;
NotifyOfPropertyChange(() => Activity);
}
}
}

private double _duration;
public double Duration {
get {
return _duration;
}
set {
if (value != _duration) {
_duration = value;
NotifyOfPropertyChange(() => Duration);
}
}
}
}

最佳答案

  1. 您不应该存储 InAppSettings但是InPhoneState
  2. 使用断点 if 方法检查 Configure叫做。如果没有 - 你的 Bootstrap 有问题。可能PhoneContainer.RegisterPhoneServices()丢失了
  3. 在 Visual Studio 中启用捕获第一次机会异常(Ctrl+Alt+E,并勾选 CLR 异常)。您的 View 模型可能无法正确反序列化。

关于windows-phone-7 - Caliburn Micro 中的墓碑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13553760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com