网站后台更新没有变化,推荐一些外国做产品网站,工程建设范围,深圳平面设计公司推荐安装Prism.DryIoc库#xff1a; Prism的区域和模块化#xff1a;
一个区域可以显示一个用户控件
一个模块就是一个项目#xff0c;也就是一个类库
动态切换用户控件的案例#xff1a;
GridGrid.RowDefinitionsRowDefinition Heightauto Prism的区域和模块化
一个区域可以显示一个用户控件
一个模块就是一个项目也就是一个类库
动态切换用户控件的案例
GridGrid.RowDefinitionsRowDefinition Heightauto/RowDefinition//Grid.RowDefinitionsStackPanel OrientationHorizontalButton Margin5 Content打开模块A Command{Binding OpenCommand} CommandParameterViewA/Button Margin5 Content打开模块B Command{Binding OpenCommand} CommandParameterViewB/Button Margin5 Content打开模块C Command{Binding OpenCommand} CommandParameterViewC//StackPanelContentControl prism:RegionManager.RegionNameContentRegion Grid.Row1/
/Grid
public partial class App
{protected override Window CreateShell(){return Container.ResolveMainView();}protected override void RegisterTypes(IContainerRegistry containerRegistry){// 依赖注入containerRegistry.RegisterForNavigationViewA();containerRegistry.RegisterForNavigationViewB();containerRegistry.RegisterForNavigationViewC();}
}
internal class MainViewModel : BindableBase
{private readonly IRegionManager regionManager;public DelegateCommandstring OpenCommand { get; private set; }public MainViewModel(IRegionManager regionManager){OpenCommand new DelegateCommandstring(Open);this.regionManager regionManager;}private void Open(string obj){regionManager.Regions[ContentRegion].RequestNavigate(obj);}
}
多模块的情况下动态切换一个区域的用户控件
大部分的代码是和上面一样的
模块A中的ModuleAProfile文件
namespace ModuleA
{public class ModuleAProfile : IModule{public void OnInitialized(IContainerProvider containerProvider){}public void RegisterTypes(IContainerRegistry containerRegistry){// 依赖注入containerRegistry.RegisterForNavigationViewA();}}
}
主项目中的App.xaml
public partial class App
{protected override Window CreateShell(){return Container.ResolveMainView();}protected override void RegisterTypes(IContainerRegistry containerRegistry){}protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog){moduleCatalog.AddModuleModuleAProfile();moduleCatalog.AddModuleModuleBProfile();base.ConfigureModuleCatalog(moduleCatalog);}
}