複数のボタンをグルーピングすることにより、複数の選択肢の中から1つだけ選択させたい場面に利用することができます。
このサンプルは\\sample\control\controls.xmlのToggleButtonフォームの「Grouped buttons for a number tag」にあります。サンプルでは、Stop/Motor1/…/Motor7のトグルボタンがグループ化されています。
1)この状態では、Motor2が選択されています。
2)オペレータがMoter3を選択するとMoter2のボタンは解除され、Moter3がON(押された状態)になります。
グルーピングの手順は以下のとおりです。
1)グループとして組にしたい各コントロールのNameプロパティに、それぞれコントロールの名前を付けてください。
2)このグループの中から「親」となるコントロールを決めます。親はグルーピングするコントロールの中からどれか1つ選びます。
3)親コントロールのGroupObjectプロパティに、グルーピングを行いたいコントロールの名前をカンマ区切で設定します。この時、親自身のコントロール名を含める必要はありません。
例)GroupObject プロパティ : Motor1,Motor2,Motor3,Motor4,Motor5,Motor6,Motor7
4)グルーピングする各コントロールのGroupThisValueプロパティの設定を行います。GroupThisValueは組の中でどのボタンが押された状態なのかを識別するための値です。従って、各コントロールで重複しない値を設定します。
例)
StopボタンのGroupThisValueプロパティ : 0
Motor1ボタンのGroupThisValueプロパティ : 1
…
Motor7ボタンのGroupThisValueプロパティ : 7
5)親コントロールのGroupValueプロパティに、スイッチの切り替えを通知したいタグをバインドします。
このバインドによって、スイッチ操作に応じてタグの値を切り替えることができます(例えば0,1,2…)。
このプロパティは、グループ内のどれかのボタンが押された時に、各ボタンに割り付けられたGroupThisValueプロパティの設定値により値がリアルタイムに変化します。
この例では、Motor2が押された時は、親コントロールのGroupValueは2になります。Motor5が押された時は、GroupValueは5になります。
なお、GroupValueプロパティは読み取り専用のため、バインドタブのみに表示されます。又、GroupValueが変化すると、OnGroupValueChangedイベントが発生します。
|