我有一个只能在这种情况下执行的按钮命令:
public bool CanClick
{
get
{
return (DateX.HasValue) &&
(DateY.HasValue) && !string.IsNullOrEmpty(Str.NomStr)
}
}
组合框
SelectedItem
势必会: private Structure _str;
public Structure Str
{
get { return _str; }
set
{
_str = value;
NotifyOfPropertyChange("Str");
}
}
一旦我开始填写字段(日期等),我就会收到错误消息
Object reference not set to an instance of an object.' Str.get returned null
问题是如果我实际检查它是否为空,为什么我会得到这个?
最佳答案
因为你没有初始化你的_str
对象,_str
将指向 NULL
当你 get
可以查看if==null
,然后设置一个默认值。
private Structure _str;
public Structure Str
{
get {
if(_str == null)
_str = new Structure();
return _str;
}
set
{
_str = value;
NotifyOfPropertyChange("Str");
}
}
编辑
如果
Str==null
没有设置值,这意味着不能点击。您可以尝试使用此代码
因为
&&
需要让左右条件为true
.右边是
false
它将返回 false
.不会执行左侧条件。public bool CanClick
{
get
{
return (DateX.HasValue) &&
(DateY.HasValue) && (Str!=null && !string.IsNullOrEmpty(Str.NomStr))
}
}
关于c# - 检查复选框 MVVM 中是否未选择任何项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51574555/