私はWPF、MVVM、PrismとUnityでアプリケーションを作成します。 1つのウィンドウのから私は、二次ウィンドウを起動します。BTMPrescriptionViewModelでWPF&MVVM:CloseActionは機能しません。
public void ShowForm(IPrescriptionViewModel viewModel)
{
var view = new PrescriptionForm();
view.SetDataContext(viewModel);
view.ShowDialog();
}
方法SetDataContext
public void SetDataContext(IPrescriptionViewModel viewModel)
{
if (viewModel == null) return;
DataContext = viewModel;
if (viewModel.CloseAction == null)
viewModel.CloseAction = new Action(this.Close);
}
をプロパティ
public Action CloseAction { get; set; }
とCloseCommandExecute
public ICommand CloseCommand => new RelayCommand(CloseCommandExecute);
private void CloseCommandExecute()
{
CloseAction();
}
ことですうまく動作しますが、一度だけ - 最初のものです。セカンダリウィンドウを閉じてもう一度開くと、ウィンドウの閉じるボタンでのみ、コマンドボタンで閉じなくなりました。親ウィンドウを閉じて開いた後に、セカンダリウィンドウをコマンドボタンでもう一度閉じることができますが、もう一度一度しか閉じることはできません。
ありがとうございました。今はすべて正常に動作します – SergS