2013-11-25 3 views
0

WPF 응용 프로그램에서 특정 시간 간격으로 모든 구성 요소의 UI를 새로 고쳐야합니다. 가장 간단한 방법은 무엇인지 알아야합니다.특정 시간 간격으로 OnPropertyChanged를 늘리는 방법은 무엇입니까?

  • 내 질문 : 어떻게 오름차순 OnPropertyChanged?

  • 더 잘 알고 있습니까?

코드의 샘플을 제공하십시오 덕분에 가능

namespace MyClient.Common 
{ 

    public abstract class BindableBase : INotifyPropertyChanged 
    { 
     public event PropertyChangedEventHandler PropertyChanged; 
     protected bool SetProperty<T>(ref T storage, T value, /*[CallerMemberName]*/ String propertyName = null) 
     { 
      if (object.Equals(storage, value)) return false; 

      storage = value; 
      this.OnPropertyChanged(propertyName); 
      return true; 
     } 

     protected void OnPropertyChanged(/*[CallerMemberName]*/ string propertyName = null) 
     { 
      var eventHandler = this.PropertyChanged; 
      if (eventHandler != null) 
      { 
       eventHandler(this, new PropertyChangedEventArgs(propertyName)); 
      } 
     } 
    } 
} 
+0

OnPropertyChanged를 호출하기 만하면됩니다. 매개 변수를 전달하지 않으면 모든 매개 변수가 업데이트됩니다. BackgroundWorker ReportPsrogress의 이벤트 처리기에서이 작업을 수행 할 수 있습니다. – Paparazzi

+0

타이머 개체 사용 - http://msdn.microsoft.com/en-us/library/system.timers.timer(v=vs.110).aspx. –

+0

Timer + Dispatcher (UI 스레드에서 호출) ... 또는 DispatcherTimer http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.dispatchertimer – Olivier

답변

1

확실히 가장 좋은 방법은 모든 :-) 난 당신이에서 INotifyPropertyChanged 인터페이스를 구현 한 것을 볼로 컨트롤을 갱신하지 않는 것 간단한 MVVM 패턴을 구현하는 데 그리 멀지 않습니다. 그렇게하면 사용자 인터페이스가 뷰 모델의 이벤트를 자동으로 업데이트하고 컨트롤이 항상 최신 상태 여야합니다. 방법은 MVVM에 시작하는에 관한

는 많은 참조 중 하나입니다 http://www.markwithall.com/programming/2013/03/01/worlds-simplest-csharp-wpf-mvvm-example.html

난 그냥 같은 jurney을 통해 자신을 봤는데, 나는 그것의 걸림있어 일단, 나는 얼마나 깨끗하고 좋은 실현 모두 다.

경우에 따라 OnPropertyChanged를 수동으로 호출해야합니다 (예 : 속성이 다른 멤버 또는 외부 요인에서 추론 된 경우). 그런 다음 OnPropertyChanged ("PropertyName")를 호출하면됩니다.

+0

제 경우에는 뷰 모델이 XML 파일에서 데이터를 가져옵니다. 특정 시점에 뷰 모델을 업데이트하는 방법을 알고 싶습니다. 그걸 도와 주실 수 있습니까? – GibboK

+1

무엇이 업데이트해야합니까? 파일의 내용이 변경됩니까? 새 파일이 있습니까? 사용자가 버튼을 클릭합니까? 또는 다른 것? – Snorre

+0

http를 사용하는 서버의 데이터가있는 XML이 있습니다. xml 파일의 데이터가 변경되면 ui를 업데이트해야합니다. 5 분마다 xml 변경 사항을 확인해야합니다. – GibboK

관련 문제