甄文超

TNT 数字生活

wpf


prism RequestNavigate传参

RegionManager.RequestNavigate传参说明 方法说明 // 参数: // regionName: // The name of the region where the navigation will occur. // // target: // A string that represents the target where the region will navigate. // // navigationParameters: // An instance of NavigationParameters, which holds a collection of object parameters. void RequestNavigate(string regionName, string …

.NET wpf prism

prsm 复杂对象改变,通知View的方法

viewmodel对象的属性改变时,可以使用RaisePropertyChagned通知View private void Execute_OpenPickerMemberCommand() { _dialogService.ShowDialog(DialogNames.MemberPickerDialog, null, r = { if (r.Result != ButtonResult.OK) return; var member = r.Parameters.GetValue("SelectedData"); PrjModel.Owner = member.Id; PrjModel.OwnerName = member.Name; this. …

wpf prism

Prism 非主界面使用Region

非主界面使用Region时,需要特殊处理,否则无法找region 示例: 1、在Module的View里使用Region的方法 填充Region后不再,切换 .xaml <ContentControl x:Name="groupRegion" Margin="10,5,5,5" prism:RegionManager.RegionName="RegionName"/> .cs public MainForm(IRegionManager regionManager, IContainerProvider provider) { InitializeComponent(); //新页面需要手动加入RegionManger,并更新 RegionManager.SetRegionManager(groupRegion, provider.Resolve< …

wpf prism

INavigationAware接口

public interface INavigationAware { bool IsNavigationTarget(NavigationContext navigationContext); void OnNavigatedTo(NavigationContext navigationContext); void OnNavigatedFrom(NavigationContext navigationContext); } 当从本页面转到其它页面的时候,会调用OnNavigatedFrom方法,navigationContext会包含目标页面的URI。 当从其它页面导航至本页面的时候,首先会调用IsNavigationTarget,IsNavigationTarget返回一个bool值,简单地说这个方法的作用就是告诉Prism,是重复使用这个视图的实例还是再创建 …

wpf prism

log4net .net6的应用程序标准案例

第一步 安装 通过NuGet直接搜索进行安装安装log4net 第二步 编写log4net配置参数 1.添加 log4net.config 文件并更改属性 2.编写 log4net.config &lt;?xml version="1.0" encoding="utf-8" ?&gt; &lt;configuration&gt; &lt;log4net&gt; &lt;!--定义输出到文件中--&gt; &lt;appender name="SysAppender" type="log4net.Appender.RollingFileAppender"&gt; &lt;!--日志的路径--&gt; &lt;file value="Logs/"/&gt; &lt;!--是否覆盖,默认是追加true--&gt; &lt;appendToFile …

.NET wpf

WPF Prism(六)Dialog

一、什么是Dialog 对话框实际上是我们应用程序经常用到得一个功能,类如:Show、Show Dialog。可以弹出一个我们指定得窗口,仅此而已那么在Prism当中,Dialog指的什么? Prism提供了一组对话服务,封装了常用的对话框组件的功能,例如: RegisterDialog/IDialogService (注册对话及使用对话) 打开对话框传递参数/关闭对话框返回参数 回调通知对话结果 二、创建Dialog Dialog其实也是一组用户控件,我们可以创建一个子模块,然后不需要继承IModule,继承了也没有关系,只要不加载该子模块就行,这样我们可以把他当作对话框或者子模块使用,而不需要改动太多代码。值得一提的是,默认情况下这个控件会嵌入到窗体中弹出,所以我们可以定义弹出窗体的一些属性: &lt;prism:Dialog.WindowStyle&gt; …

.NET wpf

WPF Prism(五)Navigation

一、使用场景 在普遍的业务场景当中,必不可少的是页面切换,而Prism就可以使用Navigation功能来进行页面导航,在不同的场景当中会有各种用法,例如在切换页面验证、传递参数、返回上一页、返回下一页等功能。 二、导航的使用 2.1 注册显示区域(region)这个在前面章节已做详细介绍不再赘述。 2.2 注册导航页面(View)之前的介绍中我们一般是将一个View指定到一个region中。而现在我们需要将多个View注册到导航中。例如我们现在有两个子模块(ViewAModule和ViewBModule),我们分别注册导航界面: public class ViewAModule : IModule { public void OnInitialized(IContainerProvider containerProvider) { …

.NET wpf

WPF Prism(四)MVVM

一、前言 在阅读本篇文章之前,最好有ICommand和INotifyPropertyChanged等基础知识。 二、BindableBase BindableBase抽象类实现了INotifyPropertyChanged接口,主要作用当绑定到界面的数据发生改变的时候可以通知界面进行更新。 public class ContentViewModel : BindableBase { private string _message; public string Message { get { return _message; } set { SetProperty(ref _message, value); } } } 三、Command 用于事件 …

.NET wpf

WPF Prism(三)ViewModelLocator

一、命名约定 在Prism当中,你可以基于命名约定,便能够轻松的将View和ViewMode建立关联。前提是你已经为项目创建了Views和ViewModels文件夹(这里就突出了使用模板创建的好处了)。 例如:你的页面为ViewA,那么对应的ViewModel名称为ViewAViewModel。 ​ 你的页面为HeaderView,那么对应的ViewModel名称为HeaderViewModel。 二、允许View自动装配ViewModel &lt;UserControl x:Class="Menu.Views.MenuView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/ …

.NET wpf

WPF Prism(二)Module

一、什么是模块(Module) 本质上来说,对于一个应用程序而言,特定功能的所有View、Logic、Service等都可以独立存在。那么我们称每一个独立的功能我们都可以称之为模块。 通常情况下,我们在一个项目当中的结构是这样的: 所有的模块都在一个项目中,这使得应用程序当中,我们难以区分单独的模块,它们似乎变成了一个整体。所以,当我们开始考虑划分模块之间的关系的时候,并且采用新的模块化解决方案,它的结构将变成如下: 该项目包含了一个启动页,并且在启动页当中,我们划分好了对应的区域。这个时候,我们便可以灵活的配置我们的应用程序功能。使用Prism提供的强大功能,我们可以动态的加载应用程序模块,为指定的Region动态分配内容。 二、创建模块 2.1如果安装了VS插件,则可以直接在Module,它是一个类库。创建好之后是这样的: 2.2查看HeaderModule文件 …

.NET wpf