2011-07-19 9 views
0

私のアプリケーションには、最大100個のセルを持つグリッドが含まれています。私は各セルにカスタムコントロールを追加したいと思います。カスタムコントロールのすべてのインスタンスは、共有リポジトリからデータを取得します。コントロールは、ユーザーが各セルのコントロールと独立して操作できる点を除いて、同じように見えます。コントロールにフライウェイトパターンを適用しますか?

私が直面している問題は、各コントロールの作成には50ミリ秒かかることがあります。つまり、10×10グリッドの場合、グリッドには5秒かかります。

私はフライウェイトを使用することを考えています。私はこのパターンに精通していません。私が知っている唯一のことは、単一のオブジェクトを多くの "クライアント"の間で共有できることです。しかし、各コントロールは1つのセル(親)にのみ割り当てることができるので、どのように行うことができるかはわかりません。私はコントロールを共有することはできません、できますか?

提案がありますか?

答えて

0

これは、OS/2のプレゼンテーションマネージャで最初のExcelのようなアプリケーションを作成しようとしたようなものです。それは私が正しく覚えていれば1990年でした(はい、私はそれが古いです)。私のシートに細胞を持っているのと同じくらい多くの編集コントロールを作成することは不可能であることが判明しました。

最初からすべてのコントロールを作成する代わりに、コントロールのプレビューを作成します。ほとんどの場合、Excelのようにテキストを表示するだけで十分です。

コントロールが実際に必要な場合のみ作成します。ユーザーはセルをクリックします。ユーザーが別のセルをクリックしてEnterキーを押すまで、このコントロールを有効にしておきます。

関連する問題