나는 사용자 정의 클래스로 작업하고 있으며 속성을보고 특정 경우에만 반응하는 이벤트 처리기가 있습니다.상속 된 클래스에서 이벤트 핸들러가 작동하는 방식을 어떻게 변경합니까?
public class LoopingPageView : PageView
{
protected override void OnPageChanged()
{
if (PageChanged != null &&
Pages.IndexOf(ActivePage) > 0 &&
Pages.IndexOf(ActivePage) < Pages.Count - 1)
PageChanged(this, Pages.IndexOf(ActivePage) - 1);
}
}
그러나, 내가 할 수있는 유일한 PageChanged 메시지를 얻을 :
여기public class PageView
{
private UIView activePage;
public List<UIView> Pages { get; set; }
public delegate void PageChangedEventHandler(object sender, PageChangedEventArgs e);
public event PageChangedEventHandler PageChanged;
public UIView ActivePage
{
get { return activePage; }
set
{
if (!activePage.Equals(value))
{
activePage = value;
OnPageChanged();
}
}
}
protected virtual void OnPageChanged()
{
if (PageChanged != null)
PageChanged(this, new PageChangedEventArgs(Pages.IndexOf(activePage)));
}
}
내가 자식 클래스에서 할 노력하고 무엇 : 여기
는 기본 클래스의 코드 조각입니다 + = 또는 - = 문의 왼쪽에 있습니다. 이 사건을 처리하는 올바른 방법은 무엇입니까?
감사합니다. 자식은 이상한 애니메이션을 수행하지 않고도 뷰간에 부드럽게 애니메이션을 적용하는 데 사용되는 추가 두 개의 뷰가 있으므로 두 뷰가 존재하지 않는 것처럼 가장하는 인덱스를 반환하고자합니다. 또한 기본 코드는 [code] base.OnPageChanged (새 PageChangedEventArgs (pageIndex -1)), [/ code] 행에 있거나 필요한 경우 (여전히 사용하고 있습니다.) –
@BlazePhoenix : 아니요, 이전 버전을 변경하지 않고 남겨 두었습니다. 그것은 해를 끼치 지 않는다. –