0

在我的项目中,我有一个名为 login.xaml 的登录页面,并且我有 loginViewModel.cs 用于使用 MVVM 方法。一开始我在我的代码隐藏页面(login.xaml.cs)中编写了 this.dialogResult=true 并使用了代码意味着它关闭了子窗口。这里我需要从 viewmodel(loginviewmodel)关闭子窗口(login.xaml)。

登录.xaml:

private void btnLogin_Click(object sender, RoutedEventArgs e)
        {

            if (txtuser.Text.Trim() != "" && txtpass.Password != "")
            {
                (DataContext as LoginViewModel).UserValidation(txtuser.Text.Trim(),txtpass.Password.Trim());
            }
        }

登录视图模型.cs:

public void UserValidation(string name, string pass)
        {
            IsBusy =true;
            uname=name;
            pword=pass;
            // ----* (Follow * for the continuation )

        }

*--> 在这里我需要关闭子窗口.. 如何关闭它..

4

1 回答 1

3

我遇到了同样的问题并解决了它......所以我有我的子窗口和按钮取消:

<Button x:Name="CancelButton" Content="Cancel" Command="{Binding CancelCommand}" CommandParameter="{Binding ElementName=SignUpPopup}" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,0,0" Grid.Row="1"/>

我所做的是通过 ExecuteCancelCommand 参数 param 传递具有 Name="SignUpPopup" 的对象子窗口。在视图模型中你有:

public void ExecuteCancelCommand(object param)
        {
            (param as Signup).Close();
           // MessageBox.Show("Window should close now");
        }

注册是子窗口类型。希望这可以帮助,

弗拉德

于 2013-03-08T12:23:10.037 回答