wpf mvvm ViewModel如何关闭view窗口
原文:wpf mvvm ViewModel如何关闭view窗口
最近用wpf 开发一客户端(MVVM),需要增加登陆窗口,登陆成功后关闭登陆窗口。
废话少说进入正题。
原理:通过CommandParameter传递窗口对象,再调用Close()关闭view窗口
请先安装:
prism4 (http://compositewpf.codeplex.com/releases)
BlendWPFSDK(https://www.microsoft.com/zh-cn/download/details.aspx?id=10801)
引用 Microsoft.Practices.Prism
xaml中的代码:
<!-- *****方法一:LoginCommand: ViewModel中实现的Command****************************-->
<Button Content="登 陆" Height="30" Width="100" Command="{Binding LoginCommand}" CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}}"/>
<!--*****************方法二****************************************
将方法一中
CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}}"
修改为:CommandParameter="{Binding ElementName=wd}"
窗口的Name="wd"
*******************************************************************-->
ViewModel中代码:
public ICommand LoginCommand { get { return new DelegateCommand<Window>((wd)=> { /******************* do something *******************/ if(wd != null) </span>wd.Close(); }); } }
相关推荐
88473166 2020-05-14
89427412 2020-05-06
conganguo 2020-05-06
86523296 2020-04-22
89427412 2020-02-13
conganguo 2020-01-18
檀木雨林 2020-01-10
<ListBox Name="sideMenu" SelectedIndex="{Binding MenuSelectedIndex}" ItemsSource="{Binding MenuList}
88473166 2020-01-08
yw00yw 2020-01-03
xcolin 2020-01-03
conganguo 2019-12-21
檀木雨林 2019-12-14
conganguo 2019-12-14
xcolin 2019-12-14
yw00yw 2019-12-14
姜海强 2020-08-01
chenjinlong 2020-06-10
conganguo 2020-06-09
yw00yw 2020-05-04