0

我想实现一个DataTrigger说,textBox1。当TexttextBox1 内部是“ABC”时,我想显示“数据匹配!” 换句话说TextBox,textBox2。我已经为此编写了下面的 xaml 代码,但它不起作用。我收到以下错误消息。

'Text' member is not valid because it does not have a qualifying type name

用于此的 XAML 代码是:

<Window x:Class="ControlTemplateDemo.Animation"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    Title="Animation" Height="300" Width="607">
<Grid>
    <Border Background="White">
        <StackPanel Margin="30" HorizontalAlignment="Left"  Width="500" Height="209">
            <TextBox Name="textBox1">                                        
                <TextBox.Triggers>
                    <DataTrigger Binding="{Binding Path=Text}">
                        <DataTrigger.Value>
                            <sys:String>ABC</sys:String>
                        </DataTrigger.Value>
                        <Setter TargetName="textBox2" Property="Text" Value="Data matched!"/>                            
                    </DataTrigger>
                </TextBox.Triggers>
            </TextBox>                
            <TextBox Name="textBox2">                    
            </TextBox>
        </StackPanel>
    </Border>
</Grid>

</Window>

绑定有问题吗?

谢谢,赫曼特

4

1 回答 1

2

您需要第二次DataTrigger放弃StyleTextBox

就像是:

<StackPanel>
  <TextBox x:Name="inputBox" />
  <TextBox Margin="0 25 0 0">
    <TextBox.Style>
      <Style TargetType="{x:Type TextBox}">
        <Setter Property="Text"
                Value="No Match Found" />
        <Style.Triggers>
          <DataTrigger Binding="{Binding ElementName=inputBox,
                                          Path=Text}"
                        Value="ABC">
            <Setter Property="Text"
                    Value="Match Found" />
          </DataTrigger>
        </Style.Triggers>
      </Style>
    </TextBox.Style>
  </TextBox>
</StackPanel>

TextBox.Triggers不支持DataTrigger. 我猜这只是EventTriggers因为文档状态

在旁注中,我通常将我的绑定放在最终作为目标的元素中(尽可能多地)。这样我发现至少亲自调试更容易。如果TextBox有错误的信息,我会立即检查它的绑定,而不是我的 xaml 文件中的每个绑定,以查看哪个元素的绑定错误,最终更新我的TextBox.

于 2013-05-15T10:45:43.893 回答