在用MVVM框架开发时 ,时常要进行数据的传送和接收。就比如两个不同的功能要用到同一个页面的情况,就拿新增和修改功能来说,它们不就是要用到同一个页面的吗,它们就是标题不以样而已。
当你点击新增,页面显示的标题为新增:
当你点击修改时:
在MVVM中,数据的传送和接收都是发生在ViewModel中的,
首先在需要接收数据的ViewModel中定义一个用来接收数据的实体:
private string textCommand;
public string TextCommand
{
get { return textCommand; }
set
{
if (textCommand != value)
{
textCommand = value;
RaisePropertyChanged(() => TextCommand);
}
}
}
传输数据的ViewModel层:
public void Add(Window window)
{
AddAmend addAmend = new AddAmend();
var addAmends = (addAmend.DataContext as AddAmendViewModel);
addAmends.TextCommand = "增加商品";
addAmend.Show();
}
public void Amend(Window window)
{
AddAmend addAmend = new AddAmend();
var addAmends = (addAmend.DataContext as AddAmendViewModel);
addAmends.TextCommand = "修改商品";
addAmend.Show();
}
其中的
var addAmends = (addAmend.DataContext as AddAmendViewModel);
就是连接传输数据的两个ViewModel的代码。