我正在尝试添加一个进度条,当在树状视图中单击展开的项目时将显示该进度条。单击项目后应立即显示此栏,并在项目展开后使其不可见。我试图为这个事件添加一个处理程序,我发现here ,但它不起作用。
我正在使用它: treeItemsToAdd = new MyTreeViewItem();
treeItemsToAdd.Expanding += treeItemsToAdd_Expanding;
我无法弄清楚为什么这不起作用......只有在项目展开后才会触发treeItemsToAdd_Expanding事件
答案 0 :(得分:-1)
我建议覆盖OnExpanded虚方法,并在默认实现之前引发Expanding事件。
public class MyTreeViewItem : TreeViewItem
{
public static readonly RoutedEvent CollapsingEvent =
EventManager.RegisterRoutedEvent("Collapsing",
RoutingStrategy.Bubble, typeof(RoutedEventHandler),
typeof(MyTreeViewItem));
public static readonly RoutedEvent ExpandingEvent =
EventManager.RegisterRoutedEvent("Expanding",
RoutingStrategy.Bubble, typeof(RoutedEventHandler),
typeof(MyTreeViewItem));
public event RoutedEventHandler Collapsing
{
add { AddHandler(CollapsingEvent, value); }
remove { RemoveHandler(CollapsingEvent, value); }
}
public event RoutedEventHandler Expanding
{
add { AddHandler(ExpandingEvent, value); }
remove { RemoveHandler(ExpandingEvent, value); }
}
protected override void OnExpanded(RoutedEventArgs e)
{
OnExpanding(new RoutedEventArgs(ExpandingEvent, this));
base.OnExpanded(e);
}
protected override void OnCollapsed(RoutedEventArgs e)
{
OnCollapsing(new RoutedEventArgs(CollapsingEvent, this));
base.OnCollapsed(e);
}
protected virtual void OnCollapsing(RoutedEventArgs e) { RaiseEvent(e); }
protected virtual void OnExpanding(RoutedEventArgs e) { RaiseEvent(e); }
}