0

ソリューションの一部である WPF プロジェクトがあります。それは「ProjectFilesSelector」です。A という名前のいくつかのプロジェクト。下図のように ProjectFilesSelector を呼び出します。

!!! 更新しました:

namespace ProjectFilesSelector
{
   ...
   public class ViewModel 
   {
        ...
        public ICommand cancel
        {
            get
            {
                return new WPFExtensions.RelayCommand(_ =>
                    {
                        this.window.Visibility = Visibility.Hidden;
                        this.window.Close();
}); } }
}

public partial class Window1 : Window, IDisposable { public Window1(ProjectTypes.Project pro) { InitializeComponent();

        var context = new ViewModel(this, new ATChecker.ViewModel.ProjectModel(pro));
        this.DataContext = context;
    }

... }

}

namespace ATCheckerView { public class ViewerClientExt : INotifyPropertyChanged { ...

public ICommand CheckPrinciplies { get { var cmnd = new RelayCommand(project => { var proj = (ViewModel.ProjectModel)project; ProjectFilesSelector.ViewModel dc; using (var a = new ProjectFilesSelector.Window1(proj.project)) { a.ShowDialog(); // cancel command was called dc = (ProjectFilesSelector.ViewModel)a.DataContext; } .... // some code // and I can still see the window of Window1. Why? });

4

1 に答える 1

1

アプリケーションを終了したくないと思います。ウィンドウを閉じたいだけかもしれません。キャンセル ボタンは IsCancel を true に設定するだけです。また、[OK] ボタンについては、viewmodel でイベントを作成してビューにアクセスするのが最善の方法です。

于 2012-08-22T09:51:57.933 に答える