将值传递到另一个窗口

时间:2018-07-31 07:25:26

标签: c# wpf mvvm

var createAccountViewModel = new CreateAccountViewModel();
var createAccountView = new CreateAccount(createAccountViewModel)
{
    CheckAccount = {Visibility =  Visibility.Hidden},
    UpdateButton = {Visibility = Visibility.Visible },
    AddEmployeButton = {Visibility =  Visibility.Hidden},
    NomEmp = {Text = SelectedEmp.NomEmp},
    PrenomEmp = {Text =SelectedEmp.PrenomEmp },
    DateRecrutement = { SelectedDate = Convert.ToDateTime(SelectedEmp.DateRecrut) },
    DateNaissance = {SelectedDate =  Convert.ToDateTime(SelectedEmp.DnEmp)}
};

我每行都有一个DataGrid和一个按钮,用于运行上面的代码。我想获取每一行的单元格内容,并将它们传递到新窗口。

可见性已更改,但是内容(文本和所选日期)未更改。窗口基本上是空的,就像如果我没有发送任何东西并且我没有错误。 (SelectedEmp可以正常工作,所以也不是那里。)

我的窗口主要用于将员工添加到我的数据库中,所以我希望使用相同的界面来编辑员工,因为GUI具有我所需的相同字段。

我的猜测(我可能错了),因为Text/SelectedDate绑定到视图模型中的属性,所以这行不通吗?在这种情况下,建议采取什么措施?

再次创建相同的GUI还是将值传递给窗口,而不是将值传递给窗口?

1 个答案:

答案 0 :(得分:0)

将值传递给ViewModel属性可以达到目的:

            var createAccountViewModel = new CreateAccountViewModel
        {
            NomEmp = SelectedEmp.NomEmp
            ,PrenomEmp = SelectedEmp.PrenomEmp,
            DateRecrutement = Convert.ToDateTime(SelectedEmp.DateRecrut),
            DateNaissance = Convert.ToDateTime(SelectedEmp.DnEmp),
            NumTel =  SelectedEmp.TelEmp


        };
        var createAccountView = new CreateAccount(createAccountViewModel)
        {
            CheckAccount = {Visibility = Visibility.Hidden},
            UpdateButton = {Visibility = Visibility.Visible},
            AddEmployeButton = {Visibility = Visibility.Hidden},
        };