【问题标题】:Prism, AvalonDock Region Adapter (Handling close DocumentPane event)Prism、AvalonDock 区域适配器(处理关闭 DocumentPane 事件)
【发布时间】:2011-02-11 20:06:21
【问题描述】:

我有一个 Prism v4 / MEF / WPF 解决方案,可以将模块视图加载到我的 Avalon Dock 中的 DocumentPane 中。我正在尝试在关闭事件上创建一个句柄(当按下“X”以关闭 DocumentPane 时)。我想不通,这是我的 RegionAdapter 类中创建 DockableContent 的部分,也是我尝试处理关闭事件的地方(我尝试了 3 个事件):

private void OnViewsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e, IRegion region, DocumentPane regionTarget)
{
    if (e.Action == NotifyCollectionChangedAction.Add)
    {
        foreach (object item in e.NewItems)
        {
            UIElement view = item as UIElement;

            if (view != null)
            {
                DockableContent newContentPane = new DockableContent()
                {
                    Content = item,
                    Title = ((ITabViewInfo)view).TabViewTitle
                    Icon = ((ITabViewInfo)view).TabViewIcon
                };
                newContentPane.Closed += new EventHandler(newContentPane_Closed);
                newContentPane.Manager.DocumentClosed +=new EventHandler(Manager_DocumentClosed);
                newContentPane.Manager.DocumentClosing +=new EventHandler<System.ComponentModel.CancelEventArgs>(Manager_DocumentClosing);

                regionTarget.Items.Add(newContentPane);
                newContentPane.Activate();
            }
        }
    }
    else if (e.Action == NotifyCollectionChangedAction.Remove)
    {
        // this is never hit
        Debug.WriteLine("removed");
    }
}

这些事件永远不会被命中(我在每个事件中都有一个 debug.writeline):

        newContentPane.Closed += new EventHandler(newContentPane_Closed);
        newContentPane.Manager.DocumentClosed +=new EventHandler(Manager_DocumentClosed);
        newContentPane.Manager.DocumentClosing +=new EventHandler<System.ComponentModel.CancelEventArgs>(Manager_DocumentClosing);

如何处理 DocumentPane 的关闭事件?

我用于此 RegionAdapter 的代码基于 http://blog.raffaeu.com/archive/2010/07/04/wpf-and-prism-tab-region-adapter-part-02.aspx

【问题讨论】:

    标签: wpf events event-handling prism mef


    【解决方案1】:

    在这里找到答案http://avalondock.codeplex.com/discussions/231982?ProjectName=avalondock

    我必须补充:

    IsCloseable = true
    HideOnClose = false
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 2013-07-12
      相关资源
      最近更新 更多