c# – PRISM:Region不向RegionManager注册

我有一个自定义控件,它来自用户控件.

public class CustomControl : ContentControl 
{
    public static readonly DependencyProperty VisualCompareControlProperty = DependencyProperty.Register("VisualCompareControl", typeof (FrameworkElement), typeof (CustomControl), new PropertyMetadata(default(FrameworkElement)));
    public FrameworkElement VisualCompareControl
    {
        get { return (FrameworkElement) GetValue(VisualCompareControlProperty); }
        set { SetValue(VisualCompareControlProperty, value); }
    }
}

这是我的’查看’:

<myNameSpace:CustomControl>
    <VisualCompareControl prism:RegionManager.RegionName="MyRegion" />
</myNameSpace:CustomControl>

以标准方式完成向该区域导航和注入视图:

RegionManager.RequestNavigate("MyRegion", navigation, navigationParameter);

当我调试区域’MyRegion’时,未在RegionManager中注册.怎么会?有任何想法吗?

最佳答案 您必须通过声明了区域适配器的控件声明该区域.我假设您的FrameworkComplement类型的VisualCompareControl控件没有.

您可以使用create a custom region adapter或使用开箱即用的三个控件之一Prism适配器:ContentControl,ItemsControl或Selector派生控件.

由于CustomControl派生ContentControl,您可以尝试:

<myNameSpace:CustomControl prism:RegionManager.RegionName="MyRegion" />

或者你可以直接去ContentControl:

<ContentControl prism:RegionManager.RegionName="MyRegion" />
点赞