0

別の WPF ダイアログに同じオプションがあります。別のオプションに依存する 1 つのオプション。最初をクリックすると、2番目もチェックしたい。どちらのオプションも、異なるクラスのプライベート bool 変数に対応しています。この問題の最善の解決策は何ですか?

4

1 に答える 1

1

Style.Triggers を使用して、WPF/XAML でそれを行うことができます。たとえば、次のコードは、チェックボックスのステータス (オン/オフ) に基づいてテキストブロック コントロールの IsEnabled ステータスをバインドする方法の例です。

<TextBlock Text="mytextblockText: ">
                    <TextBlock.Style>
                        <Style TargetType="TextBlock">
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding IsChecked,ElementName=myCheckbox}" Value="False">
                                    <Setter Property="IsEnabled" Value="True"/>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding IsChecked, ElementName=myCheckbox}" Value="True">
                                    <Setter Property="IsEnabled" Value="False"/>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </TextBlock.Style>                            
                </TextBlock>

別のチェックボックスがチェックされているときにチェックされているチェックボックスの場合、次のようになります(推測します)

<CheckBox>
            <CheckBox.Style>
                <Style TargetType="CheckBox">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding IsChecked,ElementName=myCheckbox}" Value="False">
                            <Setter Property="IsChecked" Value="True"/>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding IsChecked, ElementName=myCheckbox}" Value="True">
                            <Setter Property="IsChecked" Value="False"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </CheckBox.Style>                            
        </CheckBox>

*編集クラスのプロパティは、それらのチェックボックスとは異なるもので変更できますか? はいの場合、プロパティが変更されたときにイベントを発生させるか、対応するボックスのチェック状態を直接操作できます。また、ボックスは互いに依存していますか? それとも、一方が他方に依存しているだけですか (A <=> B または A => B)?

ボックスの状態の 1 つが変更されたときにプロパティを操作するには、Checked/Unchecked イベントを使用できます。または、こちらの Pat's answere で説明されているように DependencyProperty を使用します

于 2012-11-23T09:11:56.063 に答える