C# SfNavigationDrawer上的棱镜区域适配器
我正在尝试在Syncfusion导航抽屉()上实现RegionaAdapter 我看到它使用变量(对象)ContentView来显示视图,所以我写了以下内容:C# SfNavigationDrawer上的棱镜区域适配器,c#,wpf,prism,regionadapter,C#,Wpf,Prism,Regionadapter,我正在尝试在Syncfusion导航抽屉()上实现RegionaAdapter 我看到它使用变量(对象)ContentView来显示视图,所以我写了以下内容: public class SfNavigationDrawerRegionAdapter : RegionAdapterBase<SfNavigationDrawer> { public SfNavigationDrawerRegionAdapter(IRegionBehaviorFactory regionBehav
public class SfNavigationDrawerRegionAdapter : RegionAdapterBase<SfNavigationDrawer>
{
public SfNavigationDrawerRegionAdapter(IRegionBehaviorFactory regionBehaviorFactory) : base(regionBehaviorFactory)
{
}
protected override void Adapt(IRegion region, SfNavigationDrawer regionTarget)
{
if (region == null)
{
throw new ArgumentNullException(nameof(region));
}
if (regionTarget == null)
{
throw new ArgumentNullException(nameof(regionTarget));
}
region.Views.CollectionChanged += (s, e) =>
{
if (e.Action == NotifyCollectionChangedAction.Add)
{
foreach (FrameworkElement view in e.NewItems) {
regionTarget.ContentView = view;
}
}
// in events Remove is never called but Reset is called after a Add action
};
}
protected override IRegion CreateRegion()
{
return new SingleActiveRegion();
}
}
公共类SFNavigationDroperRegionadapter:RegionAdapterBase
{
公共SFNavigationDroperRegionadapter(IRegionBehaviorFactory regionBehaviorFactory):基础(regionBehaviorFactory)
{
}
受保护的覆盖无效自适应(IRegion区域、SfNavigationDrawer区域目标)
{
如果(区域==null)
{
抛出新ArgumentNullException(nameof(region));
}
if(regionTarget==null)
{
抛出新ArgumentNullException(nameof(regionTarget));
}
region.Views.CollectionChanged+=(s,e)=>
{
if(e.Action==NotifyCollectionChangedAction.Add)
{
foreach(e.NewItems中的FrameworkElement视图){
regionTarget.ContentView=视图;
}
}
//在事件中,从不调用Remove,但在Add操作后调用Reset
};
}
受保护的覆盖IRegion CreateRegion()
{
返回新的SingleActiveRegion();
}
}
此代码段执行以下行为:()当我在已加载的视图上单击“上一步”时,它不会更改ContentView中的视图(不调用CollectionChanged)
预期的行为是它应该显示视图
我怎样才能做到这一点
谢谢你的阅读 它是否完全没有被调用,或者只是使用了与
Add
不同的参数?@Haukinger在视图根本没有被访问时调用它。那么它就不会被触发。