5

いくつかのコンテキスト

ユーザーが基本的な棚の配置を作成できるようにするアプリケーションを作成しています。棚ブロック (棚の 1 セット) を順番に (左から右に) 並べて表し、ユーザーが詳細を編集できるようにするインターフェイスを作成したいと考えています。各ブロックには、順序、名前、幅、高さ、棚の数などの一連の詳細があります。

要件

インターフェイスに (最大 20) ユーザー コントロールの水平スクロール リストが必要です。各ユーザー コントロールはブロックの詳細を表し、これらの詳細を編集するための基本的なフォームを備えています。

ユーザーは、ユーザーコントロールのボタンを押して、それを削除し、他のブロックを並べ替え、リストの最後にブロックを追加できる必要があります。

私の質問

これらの「シェルフ ブロック」ユーザー コントロールの順序付けられたリストを維持し、コントロールの削除ボタンの押下をフォームで処理して、コントロールを削除し、リストを並べ替えるにはどうすればよいですか? どんな助けでも素晴らしいでしょう。

スクリーンショット

インターフェースのプログラミングを始めたばかりなので、インターフェースをどのように見せたいかの簡単なモックアップしか提供できません。

ここに画像の説明を入力

基本的なことですが、私が探しているものについてのアイデアが得られることを願っています。

4

2 に答える 2

0

非表示のグリッド コントロールをフォームに配置するのはどうですか。
次に、必要なデータを含む行をグリッドに追加/削除するだけで、すべてが整然とした状態に保たれます。ここでの利点の 1 つは、デバッグ目的で常にグリッドを表示して、すべてのデータをすばやく表示できることです。

于 2013-03-17T22:36:31.497 に答える
0

BindingListを使用してブロックを格納できます。BindingList は、ブロックの削除など、データが変更されたことを UI コントロール (ListBox など) に通知します。UI は、ListBox からブロックを削除することでこれを反映します。WPF/Silverlight のデータバインディングに精通している場合、これはリストと似ていますが、まったく同じではありませんObservableCollection( をターゲット.NET 4にしている場合、WinForm で ObserverableCollections を問題なく使用できると思いますが、他の誰かがそれを明確にすることができます)。

または、を直接使用する代わりにBindingSourceを使用することもできますBindingList

于 2013-03-17T15:06:00.970 に答える