C# 将多个元素绑定到单个控件
我有两个文本框。C# 将多个元素绑定到单个控件,c#,wpf,xaml,C#,Wpf,Xaml,我有两个文本框。 文本框A和文本框B 我想将这两个文本框绑定到一个命令按钮按钮C 也就是说,如果用户更改了两个文本框中任意一个的文本,则只有命令按钮应处于活动状态 从代码隐藏文件实现上述功能非常容易,但我想知道是否可以将单个控件按钮C绑定到两个元素文本框a和文本框B,并通过XAML实现所需的功能 谢谢和问候。我的建议如下: 将TextBoxA绑定到字段1,将TextBoxB绑定到字段2,然后 将ButtonC命令绑定到中继命令。确保实施CanExecuteMethod 文章在这里:这里: 在ca
文本框A
和文本框B
我想将这两个文本框绑定到一个命令按钮按钮C
也就是说,如果用户更改了两个文本框中任意一个的文本,则只有命令按钮应处于活动状态
从代码隐藏文件实现上述功能非常容易,但我想知道是否可以将单个控件按钮C
绑定到两个元素文本框a
和文本框B
,并通过XAML实现所需的功能
谢谢和问候。我的建议如下: 将TextBoxA绑定到字段1,将TextBoxB绑定到字段2,然后 将ButtonC命令绑定到中继命令。确保实施CanExecuteMethod 文章在这里:这里: 在canExecute方法中,有一个如下所示的实现:
public bool CanExecuteButtonC(object a)
{
If (!string.IsNullOrEmpty(Field1) && !string.IsNullorEmpty(Field2))
return true;
return false;
}
如果canExecute方法返回false,按钮将自动禁用,如果返回true,按钮将被激活。我的建议如下: 将TextBoxA绑定到字段1,将TextBoxB绑定到字段2,然后 将ButtonC命令绑定到中继命令。确保实施CanExecuteMethod 文章在这里:这里: 在canExecute方法中,有一个如下所示的实现:
public bool CanExecuteButtonC(object a)
{
If (!string.IsNullOrEmpty(Field1) && !string.IsNullorEmpty(Field2))
return true;
return false;
}
如果canExecute方法返回false,则按钮将自动禁用,如果返回true,则按钮将被激活。bind IsEnabled of button to a boolean属性 代码未编译或测试
public bool IsButtonEnabled
{
get
{
return !String.IsNullorEmpty(String1) && !String.IsNullorEmpty(String2);
}
}
确保在更改字符串时激发IsButtonEnabled的propertychanged
public string String1
{
//get should be here
set
{
_string1 = value;
OnPropertyChanged("IsButtonEnabled");
OnPropertyChanged("String1");
}
}
将按钮的IsEnabled绑定到布尔属性 代码未编译或测试
public bool IsButtonEnabled
{
get
{
return !String.IsNullorEmpty(String1) && !String.IsNullorEmpty(String2);
}
}
确保在更改字符串时激发IsButtonEnabled的propertychanged
public string String1
{
//get should be here
set
{
_string1 = value;
OnPropertyChanged("IsButtonEnabled");
OnPropertyChanged("String1");
}
}
如果要在两个文本框中的任何一个包含文本时启用按钮,可以使用
多数据触发器
:
<TextBox x:Name="TextBoxA" />
<TextBox x:Name="TextBoxB" />
<Button x:Name="ButtonC">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Text, ElementName=TextBoxA}" Value=""/>
<Condition Binding="{Binding Text, ElementName=TextBoxB}" Value=""/>
</MultiDataTrigger.Conditions>
<Setter Property="IsEnabled" Value="False" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
如果要在两个文本框中的任何一个包含文本时启用按钮,可以使用
多数据触发器
:
<TextBox x:Name="TextBoxA" />
<TextBox x:Name="TextBoxB" />
<Button x:Name="ButtonC">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Text, ElementName=TextBoxA}" Value=""/>
<Condition Binding="{Binding Text, ElementName=TextBoxB}" Value=""/>
</MultiDataTrigger.Conditions>
<Setter Property="IsEnabled" Value="False" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
看看这里看看这里