Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将值传递到另一个窗口_C#_Wpf_Mvvm - Fatal编程技术网

C# 将值传递到另一个窗口

C# 将值传递到另一个窗口,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个DataGrid,每行都有一个按钮来运行上面的代码。我想获取每行的单元格内容,并将它们传递到一个新窗口 可见性正在更改,但内容(文本和选定日期)未更改。窗口基本上是空的,好像我没有发送任何东西,也没有错误。(SelectedEmp工作正常,因此也不是从那里开始的) 我的窗口主要用于将员工添加到数据库中,因此我希望使用相同的界面来编辑员工,因为GUI具有相同的字段 我猜(我可能错了)这不起作用,因为Text/SelectedDate绑定到视图模型中的属性?在这种情况下,建议做什么 再次创建

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

可见性正在更改,但内容(文本和选定日期)未更改。窗口基本上是空的,好像我没有发送任何东西,也没有错误。(
SelectedEmp
工作正常,因此也不是从那里开始的)

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

我猜(我可能错了)这不起作用,因为
Text/SelectedDate
绑定到视图模型中的属性?在这种情况下,建议做什么


再次创建相同的GUI,或者我应该通过视图模型构造函数来传递值,而不是将值传递给窗口?

将值传递给视图模型属性实现了以下目的:

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)}
};

两个窗口都来自同一个项目吗?能否共享ViewModel以允许访问相同的值?如何启动第二个窗口?如果
CreateAccount
表单
,则调用
createAccountView.Show()
。抱歉,我认为这是显而易见的。是的,我使用createAccountView.Show();打开。是的,它们都在同一个项目中。您可以将相同的ViewModel传递给第二个窗口,并将一些字段绑定到此VM
            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},
        };