NetDetailsWindow.xaml.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using Oreo.PCMonitor.Commons;
  2. using Oreo.PCMonitor.Models;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Collections.ObjectModel;
  6. using System.ComponentModel;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading;
  10. using System.Threading.Tasks;
  11. using System.Windows;
  12. using System.Windows.Controls;
  13. using System.Windows.Data;
  14. using System.Windows.Documents;
  15. using System.Windows.Input;
  16. using System.Windows.Media;
  17. using System.Windows.Media.Imaging;
  18. using System.Windows.Shapes;
  19. using Y.Utils.DataUtils.Collections;
  20. using Y.Utils.DataUtils.UnitConvertUtils;
  21. namespace Oreo.PCMonitor.Views
  22. {
  23. /// <summary>
  24. /// NetDetailsWindow.xaml 的交互逻辑
  25. /// </summary>
  26. public partial class NetDetailsWindow : Window, INotifyPropertyChanged
  27. {
  28. private string _Status = string.Empty;
  29. public string Status
  30. {
  31. get { return _Status; }
  32. set
  33. {
  34. _Status = value;
  35. OnPropertyChanged("Status");
  36. }
  37. }
  38. private ObservableCollection<NetProcessInfo> _ObNetPro = new ObservableCollection<NetProcessInfo>();
  39. public ObservableCollection<NetProcessInfo> ObNetPro
  40. {
  41. get { return _ObNetPro; }
  42. set
  43. {
  44. _ObNetPro = value;
  45. OnPropertyChanged("ObNetPro");
  46. }
  47. }
  48. public event PropertyChangedEventHandler PropertyChanged;
  49. public virtual void OnPropertyChanged(string propertyName)
  50. {
  51. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  52. }
  53. public NetDetailsWindow()
  54. {
  55. InitializeComponent();
  56. DataContext = this;
  57. }
  58. private void Window_Loaded(object sender, RoutedEventArgs e)
  59. {
  60. Task.Factory.StartNew(() =>
  61. {
  62. while (IsVisible)
  63. {
  64. if (R.NFS.IsNetFlowRun || R.NFS.IsNetPacketRun)
  65. {
  66. //R.Log.v("IsNetFlowRun: " + R.NFS.IsNetFlowRun + " IsNetPacketRun: " + R.NFS.IsNetPacketRun +
  67. // " Upload: " + R.NFS.NetFlow.UploadData + " Download: " + R.NFS.NetFlow.DownloadData);
  68. UIDgProcessDetailUpdate();
  69. }
  70. Thread.Sleep(1000);
  71. }
  72. });
  73. }
  74. public void Order(object sender, MouseButtonEventArgs e)
  75. {
  76. }
  77. private void UIDgProcessDetailUpdate()
  78. {
  79. Dispatcher.Invoke(new Action(() =>
  80. {
  81. if (R.NFS != null && ListTool.HasElements(R.NFS.NetProcessInfoList))
  82. {
  83. Status = string.Format("下载:{0},上传:{1}(丢包:{2})",
  84. ByteConvertTool.Fmt(R.NFS.NetFlow.DownloadData),
  85. ByteConvertTool.Fmt(R.NFS.NetFlow.UploadData),
  86. R.NFS.LostPacketCount);
  87. ObNetPro = new ObservableCollection<NetProcessInfo>(R.NFS.NetProcessInfoList);
  88. //label1.Text = "丢包数:" + R.NFS.LostPacketCount;
  89. //LbStatus.Content = "下载:" + ByteConvertTool.Fmt(R.NFS.NetFlow.DownloadData) +
  90. // " 上传:" + ByteConvertTool.Fmt(R.NFS.NetFlow.UploadData);
  91. //R.NFS.NetProcessInfoList.ForEach(p =>
  92. //{
  93. // bool isUpdate = false;
  94. // foreach (DataGridViewRow r in DgProcessDetail.Rows)
  95. // {
  96. // if (r.Cells["CoName"].Value.ToString() == p.ProcessName)
  97. // {
  98. // isUpdate = true;
  99. // r.Cells["CoDownload"].Value = ByteConvertTool.Fmt(p.DownloadData);
  100. // r.Cells["CoUpload"].Value = ByteConvertTool.Fmt(p.UploadData);
  101. // r.Cells["CoDownloadCount"].Value = ByteConvertTool.Fmt(p.DownloadDataCount);
  102. // r.Cells["CoUploadCount"].Value = ByteConvertTool.Fmt(p.UploadDataCount);
  103. // r.Cells["CoConnectionCount"].Value = p.ConnectCount;
  104. // }
  105. // }
  106. // if (!isUpdate)
  107. // {
  108. // DgProcessDetail.Rows.Add(new object[] {
  109. // p.ProcessIcon,p.ProcessName,
  110. // ByteConvertTool.Fmt(p.DownloadData),ByteConvertTool.Fmt(p.UploadData),
  111. // ByteConvertTool.Fmt(p.DownloadDataCount),ByteConvertTool.Fmt(p.UploadDataCount),
  112. // p.DownloadBagCount});
  113. // }
  114. //});
  115. }
  116. }));
  117. }
  118. }
  119. }