使用VS 2010/.Net 4.0,即使通过XAML绑定使用它们,也会对ViewModel中的所有属性触发代码分析警告CA1811(见下文):
警告CA1811:Microsoft.Performance:'BackupWindowViewModel.BackupCommand.get()'似乎没有上游公共或受保护的调用方.
public ICommand BackupCommand { get { return _backupCommand; } } <--- CA1811
<Button Content="Backup" Command="{Binding BackupCommand}" />
Run Code Online (Sandbox Code Playgroud)
这是因为代码分析(当前)不解析XAML.我的问题是,有没有办法从CA1811中排除所有ViewModel中的所有属性(例如,从ViewModelBase派生的类)?必须在每个单独的财产上压制这个警告是一个巨大的痛苦.
例如
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(someView);
AlertDialog dialog = builder.create();
dialog.show();
... then later ...
dialog.setView(someOtherView);
Run Code Online (Sandbox Code Playgroud)
代码执行没有错误,但是对话框中没有替换视图。我做错了还是不可能?