다양한 컨트롤 (예 : 버튼, 텍스트 상자, 콤보 상자 또는 체크 박스)이 포함될 수있는 usercontrol이 있습니다. 나는 무엇이 바뀌 었는지 추적 할 수있는 일반적인 방법이 필요하다. 대부분의 경우 나는 세부 사항을 신경 쓰지 않습니다 (즉, 어떤 텍스트 상자가 변경되었는지 알 필요가 없습니다). 내가 EventManager.RegisterClassEvent
을 볼 때, 이것이 내 해결책이 될거라 생각했지만, 곧 그것이 실현되지 않습니다. 이 문제는 너무 많이 해고 된 것입니다. 예를 들어, 같은 컨트롤에 버튼과 콤보 상자가있는 경우 콤보 상자 드롭 다운을 누르면 button.click 이벤트가 발생합니다.컨트롤의 "수정 된"을 추적하는 인피니트?
WinForms에서 usercontrol의 모든 컨트롤을 반복하고 적절한 이벤트 (예 : TextBox.TextChanged 또는 ComboBox.SelectedIndexChanged)를 구독해야했지만 지루했지만 작동합니다. WPF에서 더 쉽고 간편하게 사용할 수 있기를 바랍니다.
내가 대답을 이해하지 못하는 처리 할 UserControl_Click 이벤트에 e.source의 유효성을 검사하는 검사를 넣을 수 있습니다. 문제는 xaml을 사용하여이 UserControl에 콤보 상자가있는 경우 콤보 상자의 드롭 다운 단추를 클릭 할 때 UserControl_Click 이벤트도 받게된다는 것입니다. 어떻게 이것을 막을 수 있습니까? 콤보 박스의 경우 실제로 선택 영역을 변경 한 후에 SelectionChanged 이벤트를 발생 시키면됩니다. – newman
ButtonBase.Click 이벤트를 제거하십시오. 또 다른 방법은 핸들러에서 OriginalSource를 확인하는 것입니다. 예를 들어 버튼에 이름을 추가하고 소스 이름을 허용 된 버튼과 비교할 수 있습니다. – vorrtex