我的ViewModel包含一个在Command中初始化的变量,我想在另一个命令中使用它。 有2个Windows: 第一个窗口包含一个按钮,用于启动第一个命令并打开第二个窗口。第二个窗口包含一个启动第二个命令的按钮。第二个命令需要第一个命令初始化的变量。 这两个命令都是通过我的ViewModel实现的。
问题: 当第二个窗口打开时,第一个Command初始化的变量已经丢失了它的值(空字符串),我不明白为什么。
我怎么能意识到它?
答案 0 :(得分:0)
这是我的代码(来自我的ViewModel类):
// TextForThisWindow is a global variable declared in this class.
...
void firstCommandExecute()
{
TextForThisWindow = "Text";
System.Windows.Application.Current.MainWindow.Hide();
secondWindow sw = new secondWindow(Text);
sw .WindowStartupLocation = WindowStartupLocation.CenterScreen;
sw .Show();
}
bool CanfirstCommandExecute()
{
return true;
}
public ICommand firstCommand{ get { return new RelayCommand(firstCommandExecute, CanfirstCommandExecute); } }
void secondCommandExecute()
{
Info = "info";
if (TextForThisWindow.Contains("X"))
{
Selected = "X";
}
PathOfSelectedInfo = img.getPathOfSelectedInfo(ImagePathM1, Info);
path = PathOfSelectedInfo;
thirdWindow tw= new thirdWindow("Text" + Selected);
tw.WindowStartupLocation = WindowStartupLocation.CenterScreen;
tw.Show();
}
CanthirdWindowExecute()
{
return true;
}
public ICommand secondCommand{ get { return new RelayCommand(secondCommandExecute, CansecondCommandbExecute); } }