我有点问题。我在WPF中有一个表格,适用于高级员工。我也使用相同的表格来编辑员工。在.xaml.cs表单文件中,我有两个构造函数。一个用于我想要注册的时间,另一个用于我想要编辑的时间。
private readonly EmpleadoViewModel _empleadoVm;
public AltaModificacionEmpleado()
{
InitializeComponent();
_empleadoVm = (EmpleadoViewModel) DataContext;
_empleadoVm.ModoAlta = true;
_empleadoVm.TituloVentana = "Alta de empleado";
_empleadoVm.Empleado = new Empleado();
}
public AltaModificacionEmpleado(Empleado empleadoSeleccionado)
{
InitializeComponent();
_empleadoVm = (EmpleadoViewModel) DataContext;
_empleadoVm.Empleado = empleadoSeleccionado;
_empleadoVm.TituloVentana = "Editar empleado";
_empleadoVm.IsVisible = Visibility.Collapsed;
_empleadoVm.Cerrar = Close;
}
我需要在创建DataContext时传递一些参数,因为在“DC”创建和第一个属性之间,XAML负责某些必须使用这些参数控制的事情我需要传递。谢谢!
修改
我有2个ViewModel。 1注册员工(AltaModificacionEmpleado)和另一个搜索员工(BuscarEmpleadoViewModel)。
有两个按钮,一个打开表单以注册员工,另一个打开一个带有ListView +按钮的表单来搜索员工。当我找到我想要的那个,双击和员工注册表单打开,但现在加载数据,修改(绑定)。
for ex:in AltaModificacionEmpleado.xaml
<ListView ... ...
SelectedItem="{Binding EmpleadoSeleccionado}"
..
../>
for ex:在BuscarEmpleadoViewModel
private void Editar()
{
try
{
var frm = new AltaModificacionEmpleado(EmpleadoSeleccionado);
frm.ShowDialog();
}
catch (Exception dbEx)
{
...
...
}
}