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