2011-01-05 12 views
1

2つのスライダを定義しました。スライダは0〜200の値を持つことができます。 1つのスライダは最小値用で、2つ目は最大値用です。お互いに依存する2つのスライダ

ここで、最小値は<です。私は2つのスライダのリスナメソッドでこの要求を保証することができますが、スライダでこの要件を満たさない値を選択することもできないようにしたいと思います。どうやってやるの?

答えて

3

あなたはMVVMのように、提示パターンを使用している場合...

バインドプレゼンテーションモデル/ビューモデル内のプロパティに各スライダ。バインディングにMode=TwoWayを設定してください。

ビューモデルでは、セッターに作業をさせることができます。彼らは制限(他のプロパティが設定されているところ)で停止するか、補完的なプロパティを押します。たとえば、maxが100に設定され、ユーザーがminを150にスライドする場合は、150でmaxを設定することもできます。プロパティーの変更通知を表示している限り、ユーザーはもう一方のスライダーも移動します。

+0

ありがとうございます。スライダーの最小値と最大値を調整したいからです。 – RoflcoptrException

+0

@Roflcoptrスライダーの最小値と最大値を0と200のままにしておきます。そうしないと、スケーリングはユーザーにとって非常に面倒です。最小スライダの 'Value'プロパティを最小のview-modelプロパティにバインドし、最大スライダの' Value'プロパティを最大view-modelプロパティにバインドします。 – Jay

2

現在の「最小」スライダの値を「最大」スライダの「最小」プロパティにバインドする方法と、その逆の方法があります。これは、スライダの位置を変更すると少し違和感を覚えるかもしれませんが、無効な選択を確実に防止します。

+0

ありがとうございますが、可能な限り私はそれを避けたいと思います。 – RoflcoptrException

関連する問題