首页 > 解决方案 > 带有 Syncfustion TabItemControl 的棱镜导航

问题描述

我是棱镜的新手,所以也许我做错了。我有一个带有同步融合选项卡控件的应用程序,可以将视图分配给它。

这工作得很好。为了将标题添加到 TabItemExt,我添加了一个 RegionAdapter。

适应功能:

    protected override void Adapt(IRegion region, TabControlExt regionTarget)
    {
        region.Views.CollectionChanged += (s, e) =>
         {
             switch (e.Action)
             {
                 case NotifyCollectionChangedAction.Add:
                     foreach (Control item in e.NewItems)
                     {
                         if (item is TabItemExt)
                             regionTarget.Items.Add(item);
                         else
                         {
                             var foo = new TabItemExt();
                             foo.Content = item;

                             Binding myBinding = new Binding("Header");
                             myBinding.Source = item.DataContext;

                             foo.SetBinding(TabItemExt.HeaderProperty, myBinding);
                             foo.DataContext = item.DataContext;
                             regionTarget.Items.Add(foo);
                             
                         }
                     }
                     break;
                 case NotifyCollectionChangedAction.Remove:
                     foreach (TabItemExt item in e.OldItems)
                     {
                         regionTarget.Items.Remove(item);
                     }
                     break;
             }
         };
    }

在那种情况下,Prism 会丢失一些导航内容,因为当我导航到视图时,不会调用 IsNavigationTarget 方法。

如果我不使用这个 RegionAdapter,它就会被调用。

我怎样才能做到这一点?

标签: c#wpfprismregion

解决方案


推荐阅读