0

양식이 사용자에 의해 수정 된시기를 감지하고이를 수행하기 위해 INotifyPropertyChanged (INPC) 인터페이스를 사용하려고하는 방법을 구현하려고합니다. 그러나 Visual C# Express Designer를 사용하여 모든 양식 요소를 관리하고 있습니다.변경된 컨트롤을 검색하기 위해 Designer에서 생성 된 WinForm에서 INotifyPropertyChanged

저는 인터넷에서 고유 한 멤버 필드와 컨트롤을 사용하여 고유 한 클래스를 생성하여 INPC를 사용하는 방법에 대한 많은 예제를 보았습니다. 그러나이 인터페이스를 통합 한 INPC 예제는 본 적이 없습니다. .designer.cs (생성 된) 컨트롤을 사용하면 Designer에서 생성 된 컨트롤이 수정 된시기를 감지 할 수 있습니다.

예가 있습니까? 아니면 실제로 어떤 모습입니까? 이것에 대한 온라인 예가 있습니까? 모든 사람이 나에게 도움까지 줄 수 있다면 나는 지금 잠시 동안이 문제를 고민 했어요 :-(

. 그 멋진 것입니다.

PS 나는 Control.Textchanged을 사용할 수 없습니다 이벤트는 Binding.Format() 및 Binding.Parse()가 SelectedIndexChanged 동안 컨트롤이있는 TabControl의 탭을 변경하면 false positive를 보냅니다.

답변

0

내가 잘못 되었겠지만 디자이너가 변경 사항을 알 수 있도록 IComponentChangeService 사용자 지정 컨트롤에서 변경이 발생하면 다음 코드를 사용하여 변경 서비스를 가져올 수 있습니다.

IComponentChangeService changeService = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService; 

그런 다음 OnComponentChanged으로 전화하여 필요한 정보를 전달할 수 있습니다. 그리고 실행 취소가 올바르게 작동하기를 원한다면, 변경이 일어나기 전에 OnComponentChanging으로 전화해야한다고 생각합니다.

관련 문제