이벤트가 발생하기 전에 코드를 실행할 수 있습니까?WPF는 특정 이벤트가 발생하기 전에 함수를 실행합니까?
예 : Expanded = "OnExpand" 여기서 OnExpand 내의 코드는 확장 된 이벤트가 발생한 후에 발생합니다. 그 전에 코드를 실행하려면 어떻게해야합니까?
이벤트가 발생하기 전에 코드를 실행할 수 있습니까?WPF는 특정 이벤트가 발생하기 전에 함수를 실행합니까?
예 : Expanded = "OnExpand" 여기서 OnExpand 내의 코드는 확장 된 이벤트가 발생한 후에 발생합니다. 그 전에 코드를 실행하려면 어떻게해야합니까?
당신이 확장기 제어에 대해 이야기하는 경우, 호출을하기 전에 자신의 PreviewExpanded 이벤트를 발생 시켜서 호출 할 수 있습니다. base.IsExpanded = value;
당신이 있는지 확인하기 위해 확장이 PreviewExpanded 이벤트를 가지고 있지 주변에 가능한 일이 PreviewMouseDown 이벤트를 처리하고 적중 테스트를 할 수있는 미리보기 이벤트
를 사용할 수는 토글 버튼을 누릅니다.다른 방법으로는 전혀 생각에 내가 이것을 테스트하지 않았다 의 라인을 따라 확장기 클래스 뭔가를 확장하는 것이 가능하다입니다 정말 작동
public class MyExpander: Expander
{
public event EventHandler<EventArgs> PreviewExpanded;
public void OnPreviewExpanded()
{
PreviewExpanded(this,new EventArgs());
}
public override void OnExpanded()
{
PreviewExpanded()
base.OnExpanded();
}
}
작업중인 개체가이 동작을 지원하면 일치하는 "미리보기"이벤트가 발생합니다. 따라서이 두 이벤트는 전후 일치 집합입니다. KeyDown() PreviewKeyDown()
Expander에는 확장 작업에 대한 미리보기 이벤트가 없습니다.
그리고 전 세계적으로 더 나은 방법이 있습니까? 모든 확장기 컨트롤을 MyExpander로 바꾸고 싶지 않습니다. – WhoIsNinja
IsExpanded가 DependencyProperty라는 사실을 활용할 수있는 방법이있을 수 있지만, 지금은 어떻게 확신 할 수 없습니다. –
나는 또한 .net과 wpf에 초보자입니다. 사용자 정의 컨트롤을 만들고 해당 클래스에 이벤트를 추가하는 포인터는 큰 도움이 될 것입니다. – WhoIsNinja