4

私の研究では結果が得られなかったので、本質的に任意のタイプのプロパティの「ユニバーサル」コントロールである、自由に利用できるコントロール (できれば WPF) はありますか?

たとえば、WYSIWYG フォーム コンストラクターを提供していて、文字列、bool、int、datetimes、float などの複数の値の型をサポートしたいとします。もちろん、これらの型のいずれかのリストも...疑問に思っているのは、バインドされたときにプロパティの型を検出し、その型に適した型のコントロールをレンダリングするコントロールが既に存在するということです。あれは:

int の場合、アップ/ダウン ボタンとそれが整数であることの検証を含むテキスト ボックス 日時の場合、日時ピッカー 日時のリストの場合、リスト ボックスと日時ピッカーを組み合わせたカスタム コントロールで、/必要に応じて日時を削除します...

1つを書くのは比較的簡単だと思いますが、すべての異なる型を効果的に処理することは難しく、もちろん、より複雑な型を処理することはできません...

何か知ってる人いますか?

4

3 に答える 3

3

このタイプのコントロールは通常 と呼ばれPropertyGridます。

これらのコントロールを見て、ニーズに合っているかどうかを確認してください。

  1. WPF プロパティ グリッド
  2. WPF PropertyGrid コントロール
于 2012-08-02T22:18:15.977 に答える
0

これは完全なソリューションではありませんが、SilverlightにはDataFormがあり、カスタムタイプのオブジェクトにバインドすると、プロパティの適切なコントロールを備えたフォームが生成されます。WPFには含まれていませんが、SilverlightコントロールのWPFポートがあります。

編集

私はあなたの質問の一部を読み間違えたので、これはあなたにとっての解決策ではありません。それでもまだ役立つかもしれないので、ここに残しておきます。

于 2012-08-02T22:15:04.573 に答える
0

独自のコントロールを展開する場合、この機能をかなり簡単に提供し、数値エディターや日付の組み合わせなどの特定のタスクを実行するための最善の組み合わせのコントロールを組み込むことができます。

最初に包括的なコントロールを探しましたが、あなたと同じように見つけることができませんでした. そのため、15 を超える異なるデータ レンダリング タイプをサポートする独自のものを開発しました。コメントを含むコントロール全体は約 1500 行にすぎず、アプリケーションに固有の多くの機能が含まれていますが、さまざまなサードパーティ コントロールをブレンドすることもできました。

別のユース ケースで使用するもう 1 つのアプローチは、共通のコントロール インターフェイス (つまり、値の設定、値の取得、有効かどうかなど) を作成してから、このインターフェイスを実装する単一目的のカスタム コントロールを作成することです。

次に、コントロールで大量のアクションを実行するには、コントロールのコンテナー リストを循環し、コントロールがインターフェイスを実装している場合は、そのコントロールでインターフェイス アクションを実行するだけです。

これにより、すべてのコントロールで標準的な操作を実行するために記述しなければならないコードの量が大幅に削減されます。

于 2012-08-02T22:32:15.887 に答える