【问题标题】:Create a PING Monitor in WPF Application - With DataGrid在 WPF 应用程序中创建 PING 监视器 - 使用 DataGrid
【发布时间】:2016-10-02 11:02:40
【问题描述】:

我是论坛的新手。对不起,我的英语不太好。

拜托,我读了这篇文章: How to Perform Multiple "Pings" in Parallel using C#

请有人帮我解释一下如何填充 WPF 数据网格来监控 IP 列表?

我正在建立一个班级:

... 公共类 ServerMonitor { 公共字符串 ID { 设置;得到; } 公共字符串超时{设置;得到; } 公共字符串 IP { 设置;得到; } 公共字符串 TTL { 设置;得到; } } ...

在 main 方法中,我得到它在 datagridview 中显示数据。

        MonitorPing.PingAddressesAsync(new List<IPAddress>() {
            IPAddress.Parse ("XXX.XXX.XXX.XXX"),
            IPAddress.Parse ("XXX.XXX.XXX.XXX"),
            IPAddress.Parse ("XXX.XXX.XXX.XXX"),
            IPAddress.Parse ("XXX.XXX.XXX.XXX")
        }, delegate (Task<List<PingReply>> tpr)
        {
            var lr = tpr.Result;

            foreach (var pr in lr)
            {
                //This correct
                Dispatcher.BeginInvoke(DispatcherPriority.Normal,(ThreadStart)(() => dataGrid.Items.Add(new ServerMonitor { ID = pr.Buffer.ToString(), Timeout = pr.Status.ToString(), IP = pr.Address.ToString(), TTL = pr.RoundtripTime.ToString() })));
            }
        });
    }

至此,一切顺利。

但是如何让数据实时更新呢?我用了一会儿,用一个 System.Timer...

谢谢,对不起!

【问题讨论】:

  • 你卡在哪里了?尝试一下,如果遇到问题,请返回特定问题。我们不是来为您编写应用程序的。您可能想阅读stackoverflow.com/help/how-to-ask
  • @itsme86 诚然,我并不精通 C 或 WPF,但是“请有人帮助我并解释如何填充 WPF 数据网格以监控 IP 列表?”似乎是一个足够具体的问题。他们在询问如何做某件事。
  • @XamuelSchulman 我不同意。 “我怎么盖房子?”似乎也是一个关于特定问题的问题,但你真正需要做的是“我正在尝试建造房子,但是在打地基的同时,X 正在发生。这是我用来铺设的过程基础。有人能指出这个过程的缺陷以及如何纠正它吗?”
  • 您好!感谢您的回复。对不起,如果我不具体,但我可以尝试,我认为这是第一步!
  • @itsme86 好的。同样,我对 C 或 WPF 一无所知,所以我真的不知道它有多具体。

标签: c# wpf multithreading monitoring ping


【解决方案1】:

要在 DataGrid 中显示具有在 UI 中自动更新的值的项目列表,您需要将 DataGrid 绑定到实现 INotifyPropertyChanged 接口的对象的 ObservableCollection。

执行实际 ping 的代码将驻留在您的 ViewModel 中,该 ViewModel 也将包含 ObservableCollection。该代码将定期迭代该 ObservableCollection 中的对象并使用 ping 结果更新每个对象的所需公共属性,并且这些值将在 DataGrid 中自动更新,因为它们实现了 INotifyPropertyChanged 接口。

【讨论】:

  • 你好院长Kga!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多