Я создал представление (MyView), где я включил UserControl так:Wpf Prism - Передача параметра из поля зрения на ViewModel
<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);
}
код позади включенного UserControl (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; в представлении обычно является признаком того, что вы не делаете все правильно. Что вы используете для DI в призме? –
Ok Filip, я мог бы удалить (MyViewViewModel) this.DataContext; но я бы хотел передать Message = "Hello" (xaml) из view в viewmodel. Есть ли другой путь? –