以下の問題を解決する方法を見つけることを試みる。子要素条件からの親要素のDataTriggerへの方法
私の目標は です。ボタンの子要素の中にはテキストが含まれていないものがある場合は、親ボタンを無効にします。
だから、私はをしようとしているまさに:
<Button Style="{StaticResource ButtonStyle}" >
<TextBlock>
<Run Name="TxtElement1" Text=""/>
</TextBlock>
</Button>
<Button Style="{StaticResource ButtonStyle}" >
<TextBlock>
<Run Name="TxtElement2" Text="some text 1"/>
</TextBlock>
</Button>
<Button Style="{StaticResource ButtonStyle}" >
<TextBlock>
<Run Name="TxtElement3" Text="some text 2"/>
</TextBlock>
</Button>
今すぐトリガーとスタイルを作成:
<Style x:Key="ButtonStyle" TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=TxtElement1, Path=Text}" Value="">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=TxtElement2, Path=Text}" Value="">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=TxtElement3, Path=Text}" Value="">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
だから、私が得た結果に
は、ボタンを作成します。 すべてのToggleButtonsは無効にされます。 しかし、私はボタンを無効にする必要があります実行子要素のプロパティテキストが空の場合
多分私は根本的に間違ったアプローチを使用しています。
Tbh、これはまったく意味がありません...なぜあなたはこのようなボタンのスタイルを設定しますか?ボタンの 'Content'を使用して自己バインドを行います – lokusking
私の場合は、ボタンコンテンツのソースをほとんど使用していません。' 「 –
いいえ。よかったね。それは本当に奇妙で、このことはうまくいかないという事実は変わっていません。スタイルは**あなたのボタンの前に定義されているため、ボタンのコンテンツについての知識はありません(単純なテキストの場合は実際に使用する必要があります)。回避策は、「ControlTemplate」またはBehaviorまたはCodeBehindです。しかし、プレーンXAMLを使用すると、悪い時間がかかるでしょう – lokusking