2017-07-06 2 views
-1

コンボボックスはこの問題に取り組むための最良の手段ですが、視覚的には魅力的です。単一データのコンボボックスですが、複数の表現

ラジアン(1つの編集ボックス)または度、分、秒、ミリ秒(4つの編集ボックス)の形式でその値を入力することができます - 他の表現がありますが、ここで2つで十分です。今のところ私はモードエントリ "ラジアン"を持つコンボボックスを持っています。 "DMS"モードを変更すると、適切なコントロールが表示/非表示になります。

このアプローチには2つの欠陥があります - モードでは余分なコンボボックスのためのスペースが必要ですが、各コントロールが異なっているためサイズの右側がすべて移動します。

私はより直接的なアプローチについて考えています。代わりに、与えられたコントロールの可視性を切り替えるモードを選択すると、各コントロールをコンボボックスの内側に置くことができ、コンボボックスがそのコントロールを選択します。ターゲットデータは、各行(角度)に対して正確に同じであるが、各行は異なる制御を有する。というのは、各行は異なる表現を意味するからである。

コンボボックスで対応できないのですか?間違ったドアで叩いていますか?コンボボックスがこのタスクに適している場合、どのように行うのですか?

+0

これは絶対に可能です。誰かがあなたを助けてくれる前に、自分で何か努力しなければならないでしょう。 –

+0

@RomanoZumbé、本当ですが、それは "努力"の要因ではありませんでしたが、基本に戻る:-)とにかく、私は正しい軌道にいると私に安心感を与えてくれてありがとう。 – astrowalker

+1

これは私の多くを助けました:http://www.eidias.com/Blog/2012/2/20/customizing-wpf-combo-box-style –

答えて

0

私はコンボボックスレベルでのデータバインディングに焦点を当てていたので、このソリューションではコンボボックスの基本が使用されていることに気付きませんでした。

まず最初に、何かにコンボボックスをバインドすることを忘れてください - 単に各行ごとにComboBoxItemを定義し、好きなコントロールを置いてください。実際には、同じデータに対して複数のコントロールを取得します。

この時点で欠落しているのは、モードの選択だけです。私はもはや手動でコントロールの可視性を切り替えることに頼っていないので(コンボボックスは自動的にそれを行います)、私はSelectedIndexにバインドして、それを前後に飛ばすだけです。

コンボボックスは、実際のデータ(この場合は角度)に固有のものではありませんのでご注意ください。

関連する問題