我创建的视图(MyView的)其中,I包括这样的用户控件:WPF棱镜 - 从视图传递参数到视图模型
<StackPanel>
<ctrl:ViewDialog DataContext="{Binding CtrlViewDialog}" Message="Hello" Name="ctrlViewDialog" >
</ctrl:ViewDialog>
视图的背后的代码:
public MyView()
{
InitializeComponent();
var _message = ctrlViewDialog.Message;
}
[Dependency]
public MyViewViewModel ViewModel
{
get
{
return (MyViewViewModel)this.DataContext;
}
set
{
this.DataContext = value;
}
}
和视图模型MyViewViewModel是:
public MyViewViewModel()
{
ViewDialogViewModel CtrlViewDialog = new ViewDialogViewModel(Message);
}
包含的用户控件(ViewDialog)背后的代码是:
private string message;
public string Message
{
get { return message; }
set { message = value; }
}
public ViewDialog()
{
InitializeComponent();
}
我怎么能忽略MyView的的"_message"
参数,以MyViewViewModel将它传递给实例ViewDialogViewModel CtrlViewDialog = new ViewDialogViewModel(Message);
你确定这是你想要做的吗?使用(MyViewViewModel)this.DataContext;在视图中通常是一个标志,你没有把事情做对。你在棱镜中使用了什么? –
Ok Filip,我可以删除(MyViewViewModel)this.DataContext;但我想从视图传递Message =“Hello”(xaml)到viewmodel。有没有其他方法? –