【问题标题】:How do I Bind value by element name in Ammy?如何在 Ammy 中按元素名称绑定值?
【发布时间】:2017-06-13 02:43:39
【问题描述】:

如何在 Ammy 中实现以下 XAML 代码。

<Label>First Name:</Label>
<TextBox x:Name="txtFirstName" Width="100" MaxLength="10" Text="{Binding FirstName}" />
<Label >Last Name:</Label>
<TextBox Width="100">
  <TextBox.Style>
    <Style TargetType="TextBox">
      <Setter Property="Text" Value="{Binding LastName}" />
        <Style.Triggers>
          <DataTrigger Binding="{Binding ElementName=chk, Path=IsChecked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Value="True">
             <Setter Property="Text" Value="{Binding ElementName=txtFirstName, Path=Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
          </DataTrigger>
         </Style.Triggers>
     </Style>
 </TextBox.Style>
</TextBox>
<CheckBox x:Name="chk" Content="CopyFirstNameToLast" />

我们将不胜感激。

【问题讨论】:

    标签: wpf xaml ammy


    【解决方案1】:

    它应该看起来像这样:

    Label { "First Name:" }
    TextBox "txtFirstName" {
      Width: 100
      MaxLength: 10
      Text: bind FirstName
    }
    
    Label { "Last Name:" }
    TextBox {
      Width: 90
      Style: Style {
        TargetType: TextBox
        #Setter("Text", bind LastName)
    
        Triggers: DataTrigger {
          Binding: bind IsChecked from "chk" set [ Mode: TwoWay, UpdateSourceTrigger: PropertyChanged]
          Value: "True"
          Setter {
            Property: "Text" 
            Value: bind Text from "txtFirstName" set [ Mode: TwoWay, UpdateSourceTrigger: PropertyChanged ]
          }
        }
      }
    }
    CheckBox "chk" { "CopyFirstNameToLast" }
    

    编辑: 顺便一提。如果您不想将现有绑定转换为 Ammy,可以使用 XAML 语法,即 Binding: "{Binding ElementName=chk, Path=IsChecked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"

    【讨论】:

    • 我在 XAML 中实现了。我只想在Ammy取得成就。 @ionoy
    • 抱歉,错过了TriggerValueSetter。现在它确实有效。
    猜你喜欢
    • 1970-01-01
    • 2017-06-13
    • 2014-08-19
    • 2011-07-31
    • 1970-01-01
    • 2012-05-07
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多