如何使用wpf绑定根据不同TextBox文本属性的输入使按钮启用/禁用?
相关问题:Make Button enabled/disabled depending on the TextBox Text property in WPF?
我看到了类似的问题,但是启用/禁用依赖于一个TextBox。
是否有任何方法将启用/禁用的按钮绑定到多个TextBox文本属性?具体来说,需要根据包含ItemsControl列表的TextBox禁用/启用按钮吗?
发布于 2015-10-06 07:45:32
我想以MVVM的方式来处理这个问题。
通常在使用Button时,可以在XAML中设置Command属性.
<Button Command="{Binding MyCommand}" Content="Click Me"/>在您的视图模型中,您有一个与其相关联的ICommand。
public class MyViewModel
{
private ICommand _myCommand;
public ICommand MyCommand
{
get
{
if (_myCommand== null)
{
_myCommand = new RelayCommand(
p => this.CanMyCommandExecute(),
p => this.MyCommandExecute()
}
return _myCommand;
}
}
}您可以看到,您在视图模型中创建了ICommand实例,并在其中为CanExecute方法编写了代码。CanExecute方法返回一个bool,它指示命令是否能够在当前条件下执行。
根据ICommand方法是返回 true 还是 false**.**,WPF将自动禁用或启用与连接的按钮。
在"CanExecute“方法中,您可以编写代码,其中考虑到视图模型的其他绑定属性的值,然后返回true of false。
因此,假设您的视图模型中有3个TextBox控件和3个绑定字符串值。在CanExecute方法中,检查这3个字符串属性的值并返回true或false。然后将相应地启用或禁用该按钮。
发布于 2015-10-06 06:53:25
您可以遵循这些简单的步骤,我不想自己编写完整的代码,但是如果您发现有困难,可以随意询问:
ElementName设置为ItemsControlName。value的转换器。在convert()中,检查ItemsControl项的条件(值)&从convert()返回禁用/启用(False/true)。
3.使用converter内部的一个键创建一个Windows.Resources实例。IsEnabled="{ElementName=ItemsControlName,Path={Binding},Converter={StaticResource convKey}}"。
你可能会出现一些句法错误,请改正并试一试。https://stackoverflow.com/questions/32963343
复制相似问题