2016-06-02 4 views
0

저는 포럼에서 새로 왔습니다. 미안해, 내 영어 ... 잘 못해. 이 How to Perform Multiple "Pings" in Parallel using C#WPF 응용 프로그램에서 PING 모니터 만들기 - DataGrid 사용

가, 누군가가 나에게 도움을주고 IP의 목록을 모니터링에 나는 WPF에서 Datagrid를 채울 수있는 방법을 설명하십시오

, 나는 기사를 읽어 보시기 바랍니다?

내가 클래스를 구축 해요 :

... 공용 클래스 ServerMonitor { 공공 문자열 ID {설정; 도망; } public string Timeout {set; 도망; } public string IP {set; 도망; } 공용 문자열 TTL {set; 도망; } } ...

주된 방법으로는 데이터 그램보기에 데이터가 표시됩니다.

 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를 사용합니다 ...

Tks와 미안 해요!

+3

어디서 붙어 있습니까? 그것을 시도하고 문제가 생기면 특정 질문으로 다시 돌아가십시오. 우리는 당신을 위해 응용 프로그램을 작성하지 않습니다. 당신은 http://stackoverflow.com/help/how-to-ask – itsme86

+1

@ itsme86을 읽을 수도 있습니다. C 또는 WPF에 능숙하지는 않지만 "제발, 누군가 제게 도움을주고 어떻게 설명 할 수 있습니까? WPF Datagrid를 채워 IP 목록을 모니터링 하시겠습니까? " 충분히 구체적인 질문처럼 보입니다. 그들은 특정 일을하는 법을 요구하고 있습니다. –

+3

@XamuelSchulman 나는 동의하지 않는다. "집을 짓는 방법은?" 특정 것에 관한 질문처럼 보이지만 실제로해야 할 일은 "나는 집을 짓기 위해 노력하고 있지만 기초를 세우는 동안 X가 일어나고 있습니다. 여기에 제가 사용하는 과정이 있습니다. 누군가가 프로세스에 결함이 있고 그것을 수정하는 방법을 지적 할 수 있습니까? " – itsme86

답변

0

UI에서 자동으로 업데이트되는 값을 사용하여 DataGrid의 항목 목록을 표시하려면 DataGrid를 INotifyPropertyChanged 인터페이스를 구현하는 ObservableCollection 개체에 바인딩해야합니다.

실제 핑을 수행하는 코드는 ObservableCollection을 포함하는 ViewModel에 상주합니다. 이 코드는 주기적으로 해당 ObservableCollection의 개체를 반복하고 각 개체의 원하는 공개 속성을 ping 결과로 업데이트하며 이러한 값은 INotifyPropertyChanged 인터페이스를 구현하기 때문에 DataGrid에서 자동으로 업데이트됩니다.

+0

안녕하세요 딘 크가! 고마워요! – EduT