我正在使用一个自定义类,并且有一个事件处理程序来监视一个属性,并且只在特定情况下做出反应。
这是基类的一个片段:
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)));
}
}
这是我在子类中尝试做的事情:
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 只能存在于 += 或 -= 语句的左侧。处理这种情况的正确方法是什么?