2014-09-13 1 views
0

winforms 텍스트 상자와 2 웨이 바인딩을 사용하고 있습니다. 사용자가 내 데이터 를 변경 한 경우 나는 전류가 변경된 경우 그러나 그것은 또한 화재,winforms 데이터 바인딩을 사용하여 더티 감지하기

the CurrentItemChanged Event

속성이 변경된 경우이 이벤트가 화재가되는 것 같아요에 대한 도움말을 보면 운동 할 필요가있다.

데이터가 변경되었는지 여부를 판단하는 방법이 있습니까?

a similar question is also asked here 하지만

내 의견에 대답

올리버는 목록에서 개체가에서 INotifyPropertyChanged 이벤트를 지원하고 당신이는 바인딩의의 ListChanged 이벤트에 가입 할 수는 바인딩하여 목록을 대체하면 정보를 얻을 "언급 사용자가 변경 한 사항에 관해서. "

내 응용 프로그램은 이러한 조건을 충족하지만이 작업을 얻을 수 없습니다. ListChangedType.ItemChanged 속성은 희망적 이었지만 데이터를 변경하지 않고 다음 레코드를 탐색하면 바뀝니다.

링크가 at Microsoft here인데 찾을 수는 없습니다.

답변

0

이 작동하는 것 같다

void bindingSource_BindingComplete(object sender, BindingCompleteEventArgs e) 
     { 
      if (e.BindingCompleteContext == BindingCompleteContext.DataSourceUpdate) 
      { 
       var person = (Person)bindingSource.Current; 

       if (person.State == State.Unchanged && (e.BindingCompleteState == BindingCompleteState.Success) 
       && e.Binding.Control.Focused) 
       { 
        person.State = State.Modified; // using Julie Lerman's repositories technique 
       } 
      } 
     } 
관련 문제