2011-12-15 5 views
1

最終的には、1日を通して時間間隔を表す小さなスタックパネルのグリッド(グリッドは行と列を意味します)が必要です。カレンダーとして使用するスタックパネルのグリッドが必要です。

http://blogs.msdn.com/blogfiles/outlook/WindowsLiveWriter/ScheduleViewinOutlook2010_F3B0/clip_image002%5B4%5D_thumb.jpg

私が(に動的にこのグリッドを作成し、イベントが発生するたびに適切にパネルを命名する方法が必要です:私は(右のシンプルなカレンダー型のレイアウト)とし、以下からあまりにdisimilarありません具体的には、ドロップイベントでは、各パネルのドロップイベントは、どのパネルを(つまり、その日のどの時点で、どの行にアイテムがドロップされたか)区別する必要がある同じ方法に配線されます。

ありがとうございました!

ダン

答えて

2

おそらく、ここからそれを行うための完全なコードを取得することはできませんが、私は正しい方向にあなたを指すことができます。

おそらくネストされたItemsControlを使用したいと思うでしょう。私はこれまで、Calendarの外側がGridであり、グリッドセルがのTaskItemsの内部ItemsControlを含んでいた過去のようなことをしました。

最も重要な部分は、データレイヤーを正しく取得することです。私は、DateのプロパティとObservableCollection<TaskModel>のリストを持っていたCalendarDayModelクラスを使用しました。また、ダブルクリックイベントなどのユーザーイベントを処理するコマンドもありました。

私の外ItemsControlは、私はItemsControlにhereの例をいくつか持っていますが、グリッドを使用して、最後の一例をメモを取るObservableCollection<CalendarDayModel>に結合させ、内側ItemsControlObservableCollection<TaskModel>

に結合させました。

+0

ありがとうレイチェル、それは華麗です - 本当にフィードバックに感謝します。データをモデル化してリストを保存する方法を理解するのはおそらく最も難しい部分の1つですが、私は単にあなたが行ったアプローチをとるだけです。現時点で懸念しているのは、ドロップ・イベント・ハンドラと呼ばれる日/スタックパネルに関して、実際にセル/時刻を区別する方法です。私はどういうわけかスタックパネルをダイナミックには私の名前にしないといけません!私が持っている質問を言い訳にしてください.-まったく新しいWPFの新機能です。私はこのプロジェクトを手に入れました。 –

+1

@DanielMcNultyデータ構造の仕方によって異なります。セルのDataItemで処理されたドロップされたアイテムを処理するコマンドがあると、アイテムをドロップすると特定のセルのイベントが実行され、ドラッグされたアイテムがパラメータとして渡されます。 – Rachel

関連する問題