我創建的視圖(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。有沒有其他方法? –