我首先在 C#/WPF/Entity Framework DB 中编写一个应用程序,它与一个专有的工业硬件进行通信,该硬件测量来自冷却剂管线的流量和温度等值。这些值经常通过在后台运行的线程在我的 SQL Server 数据库中更新,然后显示在我的 UI 中。
我目前关心的是如何更新我的 UI 以反映这些变化。这是我如何更新数据网格的示例:
我将我的数据上下文设置为我的视图模型,并实例化一个每秒运行的线程:
_DataContext = new ViewModels.SummaryTable_ViewModel();
this.DataContext = _DataContext;
UIUpdateThread = new Thread(UIUpdaterThread);
UIUpdateThread.IsBackground = true;
UIUpdateThread.Start();
Run Code Online (Sandbox Code Playgroud)
我的网格所基于的模型是一个 IList<>,如下所示:
private IList<channel> _channel;
public IList<channel> Channels
{
get
{
return _channel;
}
set
{
_channel = value;
//NotifyPropertyChanged();
OnPropertyChanged("Channels");
}
}
Run Code Online (Sandbox Code Playgroud)
然后每秒我的 UIUpdateThread 调用我的 FillChannels() 方法,如下所示,然后网格根据 propertychanged 通知更新:
using (var DTE = new myEntities())
{
if (DTE.channels.Any())
{
var q = (from a in DTE.channels
where a.setup.CurrentSetup == true …Run Code Online (Sandbox Code Playgroud) 我无法了解如何确定可移动/从属驱动器上安装的 Windows 版本。在我的搜索中,我发现了 DriveInfo 类,它有一些简洁的东西,但没有显示驱动器是否有 XP、Vista 或更高版本(我需要知道这一点,因为它们有不同的目录结构,并且我想自动化该过程备份他们的数据)。
我是否必须以某种方式访问驱动器的注册表?我想尽可能避免这种情况,因为它很复杂,并且最终我只想做类似的事情(蹩脚的伪代码):
如果drive.has(XP) 那么
别的
万一
任何帮助将不胜感激。谢谢。