gpt4 book ai didi

devexpress - 用于 DevExpress 的自定义 RegionAdapter 的 RegionManager 问题

转载 作者:行者123 更新时间:2023-12-02 04:09:30 38 4
gpt4 key购买 nike

我为 DevExpress 功能区编写了一个自定义区域适配器。

public class dxDocumentGroupRegionAdapter : RegionAdapterBase<DocumentGroup>
{
private DocumentGroup _instance;

public dxDocumentGroupRegionAdapter(IRegionBehaviorFactory regionBehaviorFactory)
: base(regionBehaviorFactory)
{ }

protected override IRegion CreateRegion()
{
return new AllActiveRegion();
}

protected override void Adapt(IRegion region, DocumentGroup regionTarget)
{
_instance = regionTarget;
regionTarget.Items.Clear();

region.ActiveViews.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler((x, y)
=>
{
switch (y.Action)
{
case NotifyCollectionChangedAction.Add:
foreach (object __panel in y.NewItems)
{
if (__panel is DocumentPanel)
_instance.Items.Add(__panel as DocumentPanel);
else
{
if (__panel is UIElement)
{
DocumentPanel panel = new DocumentPanel();
panel.Content = __panel;

_instance.Items.Add(panel);

}
}
}
break;

case NotifyCollectionChangedAction.Remove:
foreach (DocumentPanel __panel in y.NewItems)
{
_instance.Items.Remove(__panel);

}
break;
}
});

region.ActiveViews.ToList().ForEach( x => regionTarget.Items.Add(x as DocumentPanel));
}

在我的 shell 的 xaml 中,我注册了一个区域
<dxd:DocumentGroup cal:RegionManager.RegionName="RibbonTabRegion" [...]

在后面的代码中,我正在导入 RegionManager 的一个实例。按需 Bootstrap 正在调用我的区域适配器,但我的 RegionManager 中没有该区域的条目。
我也试过
RegionManager.SetRegionManager(this, rManager)

但没有成功。
奇怪的是
rManager.RegisterViewWithRegion("regionName", typeof(view))

对我有用,但 rManager.RequestNavigate 没有。

任何的想法?

编辑

我找到了解决这个问题的方法。
我必须手动注册我的地区:
 IRegionAdapter regionAdapter = new Prism.dxDocumentGroupRegionAdapter(this.Container.GetExportedValue<IRegionBehaviorFactory>());
IRegion region = regionAdapter.Initialize(this.documentContainer, Types.ConstantValues.MainRibbonTabRegionName);
this.tRegionManager.Regions.Add(region);

最佳答案

我在上面看到你找到了解决方案。但是对于其他问题,如果我发布了我遇到的相关问题并且 DevX 支持解决方案链接。

我对 DevExpress DXTabControl 有类似的问题,在导航(从 Prism 模块)时,它不会显示所需的选项卡。 DevExpress 支持人员认识到这是一个问题。所以他们在下面的论坛帖子中给出了解决方案。

基本上,对于某些 devX 控件,自定义适配器中的行为也需要被覆盖。 (就我而言,它是 DXTabControl。

这是链接,并按照 DevX 支持 Alexander 的最后一个 jar ,下载他的示例,他在 Bootstrap 文件中编写了自定义适配器,(你可以把它放在一个单独的类中,它应该是,我猜他只是匆忙给出一个办法)。

http://www.devexpress.com/Support/Center/p/Q360416.aspx

对于文档组,我没有尝试过,但我会尝试重新创建您的问题并查看相同的解决方案(通过覆盖适配器中的行为)是否也可以在那里工作。

关于devexpress - 用于 DevExpress 的自定义 RegionAdapter 的 RegionManager 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017868/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com