1

同様の動作を持つカスタムコントロールを構築しているため、IsCheckedプロパティがどのように機能するかを理解しようとしています。RadioButton

私が必要とする情報は、otherがチェックされたときに a がRadioButton自動的にどのように変わるかです。IsCheckedfalseRadioButton

例を参照してください。

<StackPanel>
    <RadioButton Content="Info 1" IsChecked="True" />
    <RadioButton Content="Info 2" />
</StackPanel>

クリックするRadioButton"Info 2"、他のラジオは自動的にオフになります。

しかし、ラジオが次のStackPanelように異なる場合:

<StackPanel>
    <StackPanel>
        <RadioButton Content="Info 1.1" IsChecked="True" />
        <RadioButton Content="Info 1.2" />
    </StackPanel>
    <StackPanel>
        <RadioButton Content="Info 2.1" IsChecked="True" />
        <RadioButton Content="Info 2.2" />
    </StackPanel>
</StackPanel>

Info 1.1をクリックすると、チェックされたままInfo 2.1になります。

私のカスタム コントロールには、この動作が必要です。それを行う最もクリーンな方法は何ですか?

4

2 に答える 2

0

RadioButton は、通常、RadioButton コントロールのグループ内の項目として使用されるコントロールです。RadioButton コントロールは ToggleButton クラスを継承し、さらにこのクラスは ButtonBase を継承します。RadioButton コントロールは ToggleButton から継承されるため、ユーザーは選択を変更できます。RadioButton 要素がグループ化されている場合、ボタンは相互に排他的です。ユーザーは、RadioButton グループ内で一度に 1 つの項目のみを選択できます。あなたの例では、コンテンツ Info 1.1 と Info 1.2 を持つラジオ ボタンは同じ親コントロールを共有するため、グループ化されます。つまり、一度に 1 つのラジオ ボタンしかチェックされませんが、コンテンツ Info 1.1 と Info 2.1 を持つラジオ ボタンは同じ親コントロールを共有しません。グループ化されていないことを意味するため、Info 1.1 をチェックしても Info2.1 には影響しません。

于 2013-06-03T12:39:05.047 に答える
0

からカスタム コントロールを派生させることができますRadioButton。このように、IsChecked同じ親でグループ化されたチェックボックスの 1 つをクリックすると、値が切り替わります。

于 2019-06-25T03:20:42.107 に答える