【发布时间】:2011-08-26 14:29:03
【问题描述】:
我正在尝试在使用 MVVM-light V3 Sp1 的 WPF v4 应用程序中使用最新的预览版 MVVM-Light (V4 - BL16 - Mix11)。
在我的 ViewModel 中,我定义了以下属性
private WifiNetwork _selectedNetwork;
public WifiNetwork SelectedNetwork
{
get
{
return _selectedNetwork;
}
set
{
if (_selectedNetwork == value)
return;
_selectedNetwork = value;
RaisePropertyChanged("SelectedNetwork");
}
}
此属性绑定到 View XAML 中 ListBox 的 SelectedItem。
我在 viewModel 中定义了以下 RelayCommand
private RelayCommand _connectCommand;
public RelayCommand ConnectCommand
{
get
{
if (_connectCommand == null)
{
_connectCommand = new RelayCommand(
() => ConnectToSpecifiedNetwork(SelectedNetwork),
() => SelectedNetwork != null && ! SelectedNetwork.IsConnected);
}
return _connectCommand;
}
}
此 RelayCommand 绑定到我的“连接”按钮。
当所选项目尚未连接时(IsConnected 为 false),则应启用连接按钮。
这在 MVVM-Light V3 Sp1 中完美运行。但是当我使用 MIX 11 预览版的 MVVM-Light 时,这似乎不再起作用了。
有什么建议吗?
如果需要,我可以将整个项目上传到某个地方..
【问题讨论】:
-
为了解决这个问题,我不得不在我的 INPC 属性上调用“RaiseCanExecuteChanged()”方法。我不必在 MVVM-Light V3 Sp1 中执行此操作(在命令上手动提高 RaiseCanExecuteChanged)。
标签: mvvm mvvm-light