1

別の TextBox にテキストが含まれている場合にのみ有効にしたい TextBox があります。最初の TextBox の Text.Length プロパティを 2 番目のボックスの IsEnabled プロパティにバインドしています。また、最初のボックスの Text プロパティをバインドし、コンバーターを使用して bool に変換しようとしました。どちらの方法でも、最初のボックスにテキストが入力されると 2 番目のボックスが有効になりますが、テキストが削除されても 2 番目のボックスは無効になりません。

NotifyOnSourceUpdated と NotifyOnTargetUpdated を true に設定しようとしましたが、どちらも効果がありません。

<TextBox Name="textBox1"/>
<TextBox Name="textBox2" IsEnabled="{Binding ElementName=textBox1, Path=Text.Length}"/>

私の質問は、textBox1 のテキストが削除されたときに textBox2 を無効にするために必要なものです。

4

1 に答える 1

2

これはうまくいくはずです-

<TextBox Name="textBox1"/>
<TextBox Name="textBox2">
   <TextBox.Style>
       <Style TargetType="TextBox">
           <Style.Triggers>
               <DataTrigger Binding="{Binding Text.Length, ElementName=textBox1}"
                                     Value="0">
                    <Setter Property="IsEnabled" Value="False"/>
                </DataTrigger>
            </Style.Triggers>
       </Style>
    </TextBox.Style>
</TextBox>

コードの問題は、タイプが であるIsEnabled boolプロパティにプロパティをバインドしていることです。したがって、を使用するか、上記のように実行する必要があります。Text.Lengthintconvertertriggers

于 2012-10-24T12:38:27.063 に答える