MainWindow にバインドされた ViewModel があります。ViewModel に、メニュー項目を選択した後に開く 2 番目のウィンドウにバインドしたいプロパティがあります。これが、2 番目のウィンドウにバインドしたプロパティです。ここまでは順調ですね
private string _displayPathToLib;
public string DisplayPathToLib
{
get { return _displayPathToLib; }
set
{
_displayPathToLib = value;
OnPropertyChanged("DisplayPathToLib");
}
}
ICommand インターフェイスを使用するコマンドを使用して、2 番目のウィンドウを開きます。ここにスニペットがあります
public void Execute(object parameter)
{
BrowseDialog winBrowseDialog = new BrowseDialog();
Nullable<bool> BrowseDialogResult = winBrowseDialog.ShowDialog();
2 番目のウィンドウが正常に開き、表示されているテキスト ボックスを編集できます。テキスト ボックスに何かを入力すると (デバッグ ブレークを設定することにより)、「DisplayPathToLib」プロパティの変更を確認できます。ただし、ウィンドウを閉じると、「DisplayPathToLib」の値は NULL に戻ります。以下は、[OK] ボタンのクリックを処理するために使用しているコード ビハインドのスニペットです。
private void okButton_Click(object sender, RoutedEventArgs e)
{
DialogResult = true;
Close();
}
プロパティが NULL に戻り続けるのはなぜですか? 「DisplayPathToLib」の値を保持するにはどうすればよいですか??? 私はすべてを試しました。また、MVVM パターンを維持しようとしましたが、コード ビハインドなしでは [OK] ボタンを機能させることができませんでした。:-(