我有一个按钮,应该绑定到一个视图的命令.问题是这个命令改变了运行时(最初它是空的)。我的代码看起来像这样:
MyViewModel.cs
public class MyViewModel INotifyPropertChanged
{
....
private CommandStorage? _commandStorage;
public CommandStorage? commandStorage
{
get => _commandStorage;
set
{
_commandStorage == value;
OnPropertyChanged(nameof(CommandStorage));
}
}
public ICommand MyCommand => commandStorage?.MyStoredCommand;
......
}
MyView.xaml:
<Button Command={Binding MyCommand}
这里我面对的是MyCommand在初始化期间被设置为null一次。即使在commandStorage更改后,新值也不会设置为MyCommand。
1条答案
按热度按时间j8yoct9x1#
绑定到引发更改通知的
CommandStorage
属性,并删除多余的MyCommand
属性:不能假定绑定引擎知道在引发
CommandStorage
属性的PropertyChanged
事件时刷新MyCommand
属性的值。另一个选项是在其他属性的setter中实际引发数据绑定属性的事件:
我猜这只是一个错字,但在你发布的代码中,该属性被称为commandStorage。