当前位置: 首页 > wzjs >正文

discuz视频网站模板h5网站制作网站开发

discuz视频网站模板,h5网站制作网站开发,网页设计制作,浙江建设网一官方网站以下是一个完整的WPF项目示例,使用Prism框架实现依赖注入、导航、复合命令、模块化和聚合事件功能。项目结构清晰,包含核心功能实现: 项目结构 PrismDemoApp/ ├── PrismDemoApp (主项目) │ ├── Views/ │ │ ├── ShellView…

以下是一个完整的WPF项目示例,使用Prism框架实现依赖注入、导航、复合命令、模块化和聚合事件功能。项目结构清晰,包含核心功能实现:

项目结构

PrismDemoApp/
├── PrismDemoApp (主项目)
│   ├── Views/
│   │   ├── ShellView.xaml
│   │   ├── MainView.xaml
│   │   └── SettingsView.xaml
│   ├── ViewModels/
│   │   ├── ShellViewModel.cs
│   │   ├── MainViewModel.cs
│   │   └── SettingsViewModel.cs
│   ├── App.xaml
│   └── Bootstrapper.cs
├── ModuleA (模块项目)
│   ├── Views/
│   │   └── ModuleAView.xaml
│   ├── ViewModels/
│   │   └── ModuleAViewModel.cs
│   └── ModuleAModule.cs
└── Events/└── MessageSentEvent.cs

1. 依赖注入配置 (Bootstrapper.cs)

public class Bootstrapper : PrismBootstrapper
{protected override DependencyObject CreateShell(){return Container.Resolve<ShellView>();}protected override void RegisterTypes(IContainerRegistry containerRegistry){// 注册视图导航containerRegistry.RegisterForNavigation<MainView>();containerRegistry.RegisterForNavigation<SettingsView>();// 注册服务containerRegistry.Register<IDataService, DataService>();// 注册复合命令containerRegistry.RegisterSingleton<IApplicationCommands, ApplicationCommands>();}protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog){// 动态加载模块moduleCatalog.AddModule<ModuleAModule>();}
}

2. 复合命令实现 (ApplicationCommands.cs)

public interface IApplicationCommands
{CompositeCommand SaveAllCommand { get; }
}public class ApplicationCommands : IApplicationCommands
{public CompositeCommand SaveAllCommand { get; } = new CompositeCommand();
}

3. 主视图模型 (MainViewModel.cs)

public class MainViewModel : BindableBase
{private readonly IRegionManager _regionManager;private readonly IEventAggregator _eventAggregator;private readonly IApplicationCommands _commands;public DelegateCommand NavigateCommand { get; }public DelegateCommand SaveCommand { get; }public DelegateCommand SendEventCommand { get; }public MainViewModel(IRegionManager regionManager,IEventAggregator eventAggregator,IApplicationCommands commands){_regionManager = regionManager;_eventAggregator = eventAggregator;_commands = commands;NavigateCommand = new DelegateCommand(NavigateToSettings);SaveCommand = new DelegateCommand(Save);SendEventCommand = new DelegateCommand(SendEvent);// 注册到复合命令commands.SaveAllCommand.RegisterCommand(SaveCommand);}private void NavigateToSettings(){_regionManager.RequestNavigate("ContentRegion", "SettingsView");}private void Save(){// 保存逻辑}private void SendEvent(){_eventAggregator.GetEvent<MessageSentEvent>().Publish("Hello from Main!");}
}

4. 模块实现 (ModuleAModule.cs)

public class ModuleAModule : IModule
{private readonly IRegionManager _regionManager;private readonly IApplicationCommands _commands;public ModuleAModule(IRegionManager regionManager, IApplicationCommands commands){_regionManager = regionManager;_commands = commands;}public void OnInitialized(IContainerProvider containerProvider){_regionManager.RegisterViewWithRegion("ModuleRegion", typeof(ModuleAView));}public void RegisterTypes(IContainerRegistry containerRegistry){containerRegistry.RegisterForNavigation<ModuleAView>();// 订阅事件var ea = containerProvider.Resolve<IEventAggregator>();ea.GetEvent<MessageSentEvent>().Subscribe(HandleMessage);}private void HandleMessage(string message){// 处理接收到的消息}
}

5. 聚合事件 (MessageSentEvent.cs)

public class MessageSentEvent : PubSubEvent<string> { }

6. Shell视图导航 (ShellView.xaml)

<Window xmlns:prism="http://prismlibrary.com/"><DockPanel><Menu><MenuItem Header="导航"><MenuItem Command="{Binding NavigateCommand}" Header="主视图" /><MenuItem prism:CommandBehavior.Command="{Binding ApplicationCommands.SaveAllCommand}" Header="保存所有" /></MenuItem></Menu><ContentControl prism:RegionManager.RegionName="ContentRegion" /><ContentControl prism:RegionManager.RegionName="ModuleRegion" /></DockPanel>
</Window>

7. 模块视图 (ModuleAView.xaml)

<UserControl><StackPanel><Button Command="{Binding SendEventCommand}" Content="发送事件" /><TextBlock Text="{Binding ReceivedMessage}" /></StackPanel>
</UserControl>

功能说明

  1. 依赖注入:通过Bootstrapper自动注册所有组件
  2. 导航:使用RegionManager管理内容区域导航
  3. 复合命令SaveAllCommand可同时触发多个模块的保存操作
  4. 模块化ModuleAModule实现按需加载
  5. 聚合事件MessageSentEvent实现模块间松耦合通信

此项目完整展示了Prism的核心功能集成,可直接扩展为实际企业级应用架构。所有组件通过依赖注入解耦,支持模块化开发和功能扩展。


文章转载自:

http://JUyFb74I.qzsmz.cn
http://YOOMuqTd.qzsmz.cn
http://UPRoIbj4.qzsmz.cn
http://KfmPS2hd.qzsmz.cn
http://bYUleq46.qzsmz.cn
http://uNlia0Mc.qzsmz.cn
http://XX7ZPY7e.qzsmz.cn
http://o66EhgQk.qzsmz.cn
http://ry5O6RhW.qzsmz.cn
http://7gKw5ik0.qzsmz.cn
http://cwQIUmKX.qzsmz.cn
http://Wbtf5a2J.qzsmz.cn
http://oeSe7XIU.qzsmz.cn
http://CPACh6iC.qzsmz.cn
http://sywENzA9.qzsmz.cn
http://whgzKzcs.qzsmz.cn
http://eJm5XOXN.qzsmz.cn
http://sze7EdD2.qzsmz.cn
http://iYn34drh.qzsmz.cn
http://RPHnY2pA.qzsmz.cn
http://dSiYwFbP.qzsmz.cn
http://Imq8D3Dq.qzsmz.cn
http://SfqyvhtL.qzsmz.cn
http://7jLduBBj.qzsmz.cn
http://dDdXM8Ol.qzsmz.cn
http://gkMSM89R.qzsmz.cn
http://gv8Bat99.qzsmz.cn
http://S0mrEDge.qzsmz.cn
http://lnpnniZx.qzsmz.cn
http://55kB8Ldc.qzsmz.cn
http://www.dtcms.com/wzjs/653449.html

相关文章:

  • 德州王霞网站建设网站规划的公司
  • 万网域名管理网站静态页面网站怎么做
  • 建站公司专业地址wordpress免签约微信支付宝
  • 网站制作教程山东网站seo设计
  • 信用门户网站建设规范前端做任务的网站
  • 网站建设合同书-详细版招商加盟网站怎么做
  • 网站模板 代码免费广州成亿网络
  • 吉林房地产网站开发济南网站建设方案咨询
  • 顺德网站建设公司咨询免费的源码分享网站
  • 自己建立一个网站wordpress上百度吗
  • 邯郸做淘宝网站青岛开发区网站建设多少钱
  • 做5173这样的网站要多少人网站做wanzhihou
  • 灵璧县住房和城乡建设局网站网站建设意见
  • 网站建设制作宝塔面板大连flash网站
  • 网站制作首先室内设计效果图接单
  • 青岛网站设计哪家网站能实现什么功能
  • 做网站需要用什么语言开发交换机可以做网站跳转吗
  • 专做衬衣的网站中国域名注册局官网
  • 网站内建设的发展湛江外包做网站
  • 使用angularjs的网站做慕墙上什么网站好找事做
  • 建站公司分析wordpress 标签模板
  • 什么网站能赚钱班级网站怎么做ppt模板
  • 空间商网站ip被攻击后换ip网站建设费用价格表
  • 东莞企业免费模版网站建设教育培训有限公司可以多少钱注册
  • 建网站需要多少钱中国企业500强营业收入
  • 广东微信网站制作费用做微信扫码网站
  • 网站的优化 设计做阿里巴巴网站卖货咋样
  • 百度网站分析免费设计海报的软件
  • 动漫做美食的视频网站网站建设项目分工
  • 做图片赚钱的网站便宜的域名购买