如果用户已完成某项内容,则为WPF Best way store

时间:2015-09-29 10:46:38

标签: c# wpf

我正在创建一个使用通过串行连接连接的传感器的应用程序。在记录实际传感器数据之前,我需要用户捕获60秒的校准数据,其中传感器没有做任何事情。然后将捕获的数据用作后续数据处理的起点。

应用程序是在应用程序打开时或开始记录之前提示用户校准传感器(如果应用程序启动时校准尚未完成,或者应用程序在一夜之间保持打开状态是自上次校准以来的新日历日。)

管理此问题的最佳方法是什么?如果校准已经完成,我是否应该在某处存储变量的变量?或者最好是将日期和时间与校准数据一起存储,并检查这些数据以查看上次校准何时完成?

我是WPF编程的新手,想知道管理这类事情的最佳方法。我猜测如果可能运行支票比使用变量存储状态更好?如果我必须将状态存储在哪里,那么最好的方法是什么?全局变量的使用显然不受欢迎。

1 个答案:

答案 0 :(得分:0)

使用应用程序设置存储上次验证时间 这是一种以强类型方式存储数据的简便方法,无需使用数据库。 转到properties / Settings.settings。
添加System.DateTime类型的LastCalibration属性 编 在Settings.settings.cs代码中,您现在拥有:

internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {

    private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

    // ...

    [global::System.Configuration.UserScopedSettingAttribute()]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public global::System.DateTime LastCalibrationTime {
        get {
            return ((global::System.DateTime)(this["LastCalibration"]));
        }
        set {
            this["LastCalibration"] = value;
        }
    }
}

然后你可以:

// read
DateTime lastCalibration = Settings.Default.LastCalibration;

// save
Settings.Default.LastCalibration = DateTime.Now;
Settings.Default.Save();

此致