在WPF中如何使按钮启用/禁用取决于输入不同的文本框文本属性
本文关键字:文本 输入 取决于 属性 WPF 何使 按钮 启用 | 更新日期: 2023-09-27 18:16:15
如何使用wpf绑定使按钮启用/禁用取决于不同文本框文本属性的输入?
相关问题:使按钮启用/禁用取决于WPF中的文本框文本属性?
我看到这个问题类似,但这个启用/禁用取决于一个文本框。
是否有任何方法绑定一个按钮启用/禁用多个文本框文本属性?具体来说,需要基于包含TextBox列表的ItemsControl禁用/启用按钮吗?
我想用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值,表示命令是否能够在当前条件下执行。
WPF将自动禁用或启用与ICommand
连接的按钮取决于canexecute方法是否返回true
或false
。
在"CanExecute"方法中,你可以编写代码,将视图模型的其他几个绑定属性的值考虑在内,然后返回true或false。
假设你在视图模型中有3个TextBox
控件和3个绑定字符串值。在CanExecute方法中,您检查这3个字符串属性的值并返回true或false。然后按钮将相应地启用或禁用。
您可以遵循这些简单的步骤,我不想自己编写整个代码,但如果您觉得困难,请随时询问:
1. 根据链接问题,将ElementName
设置为ItemsControlName
。
2. 创建一个将控件作为value
的转换器。在convert()
中,检查ItemsControl
(value) &从convert()
返回disabled/Enabled(False/true) .
3.创建一个converter
的实例,在Windows.Resources
中使用一个键。
4. 将转换器添加到IsEnabled="{ElementName=ItemsControlName,Path={Binding},Converter={StaticResource convKey}}"
.
你可能会遇到一些语法错误,请纠正它们&试试吧