WPFには、いくつかのテキストボックスとラジオボタンのコレクションがあります。私は任意のテキストボックスがフォーカスを取得する場合、名前を持つoly 1つのラジオボタンのIsCheckedプロパティを設定するトリガを使用したいと思います。私はいくつかの例をチェックしますが、私が探しているものを見つけることができませんでした。 私たちはMVVMパターンを使用しており、コードはありません。ターゲット名を指定したトリガー
私は、次のコードを試してみましたが、このコンパイルエラーを持っている:
TargetNameはプロパティには、私は他の記事を読み、DataTriggerは、問題を解決するスタイルセッター
<UserControl.Resources>
<Style x:Name="myTest" TargetType="TextBox">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="RadioButton.IsChecked" Value="True" TargetName="myRadioButton"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
に設定することはできません。
<Style x:Name="myTest2" TargetType="RadioButton" >
<Style.Triggers>
<DataTrigger Binding="{Binding IsFocused, ElementName=myTextBox}" Value="True">
<Setter Property="IsChecked" Value="True" ></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
あなたは私たちに、少なくともXAMLコードを示すことができ、私それが役立つだろう;) –
MSDN 'あなたはどこセッターのコレクション(コレクションの範囲内の任意の要素の名前にこのプロパティを設定することができますから、このセッターの一部)が適用されます。これは、通常、このセッターを含むテンプレート内の名前付き要素です。 ' TargetNameは、主にコントロールテンプレート内で使用されています。単純に使用しようとしているようなスタイルではありません。 –
WPFトリガー、スタイル、およびテンプレートの交差点で常にこの種の問題が発生している人はいますか?スタイル設定ツールでTargetNameを使用することはできません。トリガーコレクションには、スタイルに含まれていない限り、EventTriggersしか含めることができません。コントロールはデータテンプレートではなく、コントロールテンプレートでのみ動作します... – user1454265