这篇博客将介绍在MVVM模式ViewModel中关闭和打开View的方法. 1. ViewModel中关闭View public class MainViewModel { public DelegateCommand<Window> CloseWindowCommand { get; private set; } public MainViewModel() { CloseWindowCommand = new DelegateCommand<Window>(CloseWindo
比如我们在做登录的时候需要关闭父窗体打开子窗体.使用Caliburn.Micro它的时候我们关闭登录窗口的时候主页面也会关闭. 解决方法就是在登录页面的CS里面写 IndexView iv = new IndexView();//主窗体 this.Close();//关闭登录页面 iv.ShowDialog();//打开主窗体 这3句话只能在CS里面写,在ViewModel里面是不可能的.原因很简单,View引用ViewModel.我们都知道CM的协议会自动给我们关联View和VIewMode,
问题:在关闭一个窗体2后,要刷新窗体1内的datagridview的数据,直接窗体1.datagridview.datasource=dt 是没用的. 解决办法如下: 在主窗体里 创建编辑窗体时 加上一句 frm =me.owner,然后关闭编辑窗体时 创建一个主窗体对象并赋值为me.owner 主窗体新建编辑窗体时的代码如下: Dim frm As New ItemEdit frm.Owner = Me frm.ShowDialog() 编辑窗体关闭事件代码如下: Private Sub I
原文:C#或者WPF中让某个窗体置顶 前记:在工作中有个需求,要求不管到那个界面,我必须让一个浮动条(其实是个窗体)置顶. 我用wpf,因为有之前有好几个界面已经设置成topmost了,所以在这几个界面,我的浮动条会被遮挡.为了始终让浮动条在最顶端,我写了个简单的工具类.在前面已经设置成topmost的窗体的Window_Loaded中调用这个工具类里的方法实现了始终让浮动条置顶. 工具类代码如下: public class TopMostTool { public static int SW_
用winform做程序的时候,我们一般都是在Program先启动登录窗体,然后登录成功后才创建主窗体,结果这就导致了登录窗体无法关闭 所以如果我们不在Program的程序入口先创建登录窗体的话就能完美实现登录成功后关闭登录窗体的功能了,直接贴代码 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; n