2012-09-19 4 views
5

ながらトリガ/ DataTriggerはWPFでもはや真でない場合、以前の状態に戻りますか? MSDNにおよそ<a href="http://msdn.microsoft.com/en-us/library/system.windows.datatrigger.aspx" rel="nofollow">DataTrigger</a>を読んで、それが言う

は、プロパティ値を適用するか、バインドされたデータは、指定された条件を満たしたときにアクションを実行するトリガーを表します。

トリガーは、それが所望の値に値を変更する真であるとき、それは

を意味します。

しかし、これは推測できますか?

trueでなければ、前の値に戻ります。


は、私は私でした。この

<Style x:Key="fd" TargetType="SomeControl"> 
<Setter Property="Control.Template"> 
    <Setter.Value> 
    <ControlTemplate> 
    <Button Content="Foo" x:Name="mybutton"> 
    <ControlTemplate.Triggers> 
    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=FooProperty}" 
        Value="Collapsed"> 
     <Setter Property="IsEnabled" Value="False" TargetName="mybutton"/> 
     <Setter Property="Opacity" Value="0.5" TargetName="mybutton"/> 
    </DataTrigger> 
    </ControlTemplate.Triggers> 
    </ControlTemplate> 
    </Setter.Value> 
</Setter> 
</Style> 

FooPropertyが崩壊になると、それは変更さmyButtonというのIsEnabledFalseへとOpacity0.5

にこの結論

に来てどのように

FooPropertyが表示されると、以前の値に戻すためのトリガーを書き込んでいないのに、mybuttonのIsEnabledTrueOpacityから1に変更されます。

これは組み込みの機能DataTriggerで元の値に戻すことができますそれはもはや真実ではありませんか?

「はい」の場合は、これを証明するためのMicrosoft/MSDNの文書がありますか?

答えて

4

あなたが言っていることは正しいですか?

これを証明するために、実際のドキュメントとして

、ここから 検索:

http://msdn.microsoft.com/en-us/library/ms745683.aspx

http://msdn.microsoft.com/en-us/library/system.windows.trigger.aspx

"備考部"

WPFは、エンドユーザーをに対応するプロパティを定義 などのIsMouseOverプロパティは、ユーザーがをホバリングしたときにtrueに設定されますUIElementまたは ContentElementの対応するIsMouseOverプロパティにカーソルを置きます。プロパティ値でエンドユーザーのアクションを表現すると、 がトリガー要素とともにWPFスタイルで、これらのエンドユーザーのアクションに基づいて値を の値に変更することができます。

トリガーによって変更されたプロパティは、トリガーされた条件が満たされなくなったときに自動的に以前の値の にリセットされます。 トリガーは、 に変更され、ButtonのIsPressedやListBoxItemの などの元の状態に戻ると予想される過渡状態に対して最適化されています。対象のプロパティは、 依存プロパティでなければなりません。

トリガでプロパティと値の両方のプロパティを指定して、トリガが意味を持つようにする必要があることに注意してください。 プロパティのいずれかまたは両方が設定されていない場合、例外がスローされます。

幸運:

関連する問題