[英]C# make button visible after two criteria are true with bindable property
我默认将按钮设置为IsEnabled = false
。 在两个Entries
具有输入并通过验证后,按钮应更改为IsEnabled = true
。
到目前为止,这是我的主页上的内容:
var button = new Button
{
Text = "Text",
.
.
.
IsEnabled = false
};
var entry1 = new Entry
{
.
.
.
};
var entry1 = new Entry
{
.
.
.
};
button.SetBinding(Button.CommandProperty, "EnableButtonComand");
在我的ViewModel上,我有:
bool isValidatedEntry1 = false;
bool isValidatedEntry2 = false;
bool isAllValidated = false;
public Command EnableButtonCommand { get; }
public bool IsValidatedEntry1
{
get { return isValidatedEntry1; }
set { isValidatedEntry1 = value; OnPropertyChanged("IsValidatedEntry1"); OnPropertyChanged("IsAllValidated"); }
}
public bool IsValidatedEntry2
{
get { return isValidatedEntry2; }
set { isValidatedEntry2= value; OnPropertyChanged("IsValidatedEntry2"); OnPropertyChanged("IsAllValidated"); }
}
public bool IsAllValidated
{
get { return isAllValidated; }
set { if (IsValidatedEntry1 && IsValidatedEntry2)
{
isAllValidated = true;
}
else
{
isAllValidated = false;
}
OnPropertyChanged("IsAllValidated");
EnableButtonCommand.ChangeCanExecute();
}
}
这在我的ViewModel类的构造函数中:
public Constructor()
{
EnableButtonCommand = new Command(EnableButton, () => !IsAllValidated);
}
验证成功后,我的Validation-Class
将属性设置为True
。
我使用了断点,看起来IsAllValidated
属性从未更新过-只有'Entry'属性可以更新。 为什么会发生这种情况,我应该改变什么?
IsAllValidated
作为可设置的属性没有多大意义,因为它不带任何value
,并且不需要存储任何内容(因为它的状态完全取决于其他人,如果我正确地解释了您的要求)。 相反,我会尝试这样的事情:
public bool IsAllValidated => IsValidatedEntry1 && IsValidatedEntry2;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.