我有一個ViewModel綁定到我的MainWindow。我在我的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。下面是後面我使用的處理代碼片段OK按鈕點擊
private void okButton_Click(object sender, RoutedEventArgs e)
{
DialogResult = true;
Close();
}
爲什麼房地產一直恢復到NULL?如何讓「DisplayPathToLib」保留其值?我已經嘗試了一切。我也嘗試維護一個MVVM模式,但不能沒有代碼隱藏就OK按鈕工作。 :-(
我想通了,花了將近14個小時的試驗和錯誤。我需要在窗口上設置datacontext winBrowseDialog.datacontext = _data; ........ aaauugh – Allan
請[將您的解決方案添加到答案中,並將其標記爲答案](http://stackoverflow.com/help/自我回答),正如本網站上的慣例。 – Sheridan