如何在mvvm wpf模型中处理关闭中继命令
我有这个应用程序使用MVVM wpf模型和John Smith的中继命令类。它有两个主要问题: 1) 即使在处理视图模型并将命令设置为null之后,它们仍然会在之后被激发 2) 视图模型虽然已处理完毕,但似乎仍在内存中。它在顶部使用选项卡控件,即使关闭选项卡,内存也不会被清理。这与视图模型相关,因为一旦视图模型的属性设置为null,下次打开其他选项卡时,视图模型将尝试访问已释放的属性。仅供参考,这里没有单身人士 它使用的是中继命令类,问题最终在于,即使目标对象未引发命令,仍会触发命令,即未单击命令链接到的按钮,但在关闭其子窗口时仍会触发该按钮 任何帮助都将不胜感激如何在mvvm wpf模型中处理关闭中继命令,wpf,mvvm,memory-leaks,command,Wpf,Mvvm,Memory Leaks,Command,我有这个应用程序使用MVVM wpf模型和John Smith的中继命令类。它有两个主要问题: 1) 即使在处理视图模型并将命令设置为null之后,它们仍然会在之后被激发 2) 视图模型虽然已处理完毕,但似乎仍在内存中。它在顶部使用选项卡控件,即使关闭选项卡,内存也不会被清理。这与视图模型相关,因为一旦视图模型的属性设置为null,下次打开其他选项卡时,视图模型将尝试访问已释放的属性。仅供参考,这里没有单身人士 它使用的是中继命令类,问题最终在于,即使目标对象未引发命令,仍会触发命令,即未单击命
谢谢在将命令属性设置为null后,引发命令属性的PropertyChanged事件
public class ViewModel : INotifyPropertyChanged, IDisposable
{
public event PropertyChangedEventHandler PropertyChanged;
public void Dispose()
{
Command = null;
}
public RelayCommand Command
{
get{return m_command;}
set
{
if(m_command == value)
return;
m_command = value;
if (PropertyChanged != null)
PropertyChanged (this, new PropertyChangedEventArgs ("Command");
}
}
}
将命令属性设置为null后,引发命令属性的PropertyChanged事件
public class ViewModel : INotifyPropertyChanged, IDisposable
{
public event PropertyChangedEventHandler PropertyChanged;
public void Dispose()
{
Command = null;
}
public RelayCommand Command
{
get{return m_command;}
set
{
if(m_command == value)
return;
m_command = value;
if (PropertyChanged != null)
PropertyChanged (this, new PropertyChangedEventArgs ("Command");
}
}
}
“将命令设置为空”是什么意思?ViewModel上的命令属性设置为null?将命令设置为null是什么意思?ViewModel上的命令属性是否设置为null?