我有一个绑定到我的 MainWindow 的 ViewModel。我的 ViewModel 中有一个属性,我想绑定到选择菜单项后打开的第二个窗口。这是我绑定到第二个窗口的属性。到目前为止,一切都很好
private string _displayPathToLib;
public string DisplayPathToLib
{
get { return _displayPathToLib; }
set
{
_displayPathToLib = value;
OnPropertyChanged("DisplayPathToLib");
}
}
我使用使用 ICommand 接口的命令打开第二个窗口。这是一个片段
public void Execute(object parameter)
{
BrowseDialog winBrowseDialog = new BrowseDialog();
Nullable<bool> BrowseDialogResult = winBrowseDialog.ShowDialog();
第二个窗口按原样打开,允许我编辑显示的文本框。当我在文本框中输入内容(通过设置调试中断)时,我能够看到“DisplayPathToLib”属性的变化。但在关闭窗口时,“DisplayPathToLib”的值恢复为 NULL。下面是我用来处理确定按钮单击的代码片段
private void okButton_Click(object sender, RoutedEventArgs e)
{
DialogResult = true;
Close();
}
为什么该属性会不断恢复为 NULL?如何让“DisplayPathToLib”保留其价值???我已经尝试了一切。我还尝试维护 MVVM 模式,但如果没有代码隐藏,就无法让 OK 按钮工作。:-(