我有一个自定义控件,它来自用户控件.
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" />