Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将多个元素绑定到单个控件_C#_Wpf_Xaml - Fatal编程技术网

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>

看看这里看看这里