2011-12-15 50 views
1

最終用作日曆,我的目標是有一個網格(通過網我的意思是行和列,但它的實現)小疊板來貫穿一天代表的時間間隔。從下面沒有太多disimilar我想(在右邊簡單的日曆式佈局):需要一個stackpanels的「網格」被

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

我需要動態地創建這種網格和適當命名的面板,每當一個事件被觸發(到的一種方式具體 - 放置事件,每個面板的放置事件將被連接到相同的方法,在該方法中,我必須區分哪個面板(即,在一天中的哪一點,以及在哪一行上)該物品被放置在哪個面板上)。

感謝您的幫助很大!

回答

2

你可能不會得到完整的代碼,這樣做,從這裏,但我可以爲您指出正確的方向。

你可能會想使用嵌套ItemsControl。我做了這樣的事情在過去在我的日曆外ItemsControlGrid,和網格單元包含一個內ItemsControlTaskItems一個StackPanel

最重要的部分是讓你的數據層的權利。我使用了CalendarDayModel類,其中有Date屬性和ObservableCollection<TaskModel>列表。它還具有處理用戶事件的命令,例如雙擊事件。

我的外ItemsControl被綁定到ObservableCollection<CalendarDayModel>和內ItemsControl被綁定到ObservableCollection<TaskModel>

我有一個ItemsControl here的一些例子,但是請注意,使用網格的最後一個例子。

+0

非常感謝雷切爾,這是輝煌 - 很欣賞的反饋。我理解我如何對數據進行建模並存儲列表可能是最棘手的部分之一,但我只是簡單地採取您所做的方法。我目前的擔憂是,實際上我將如何區分不同的細胞/時間,以及哪天/堆棧面板稱爲放置事件處理程序。我必須以某種方式動態命名堆棧面板不是我!?請原諒我提出的問題 - 對WPF來說很新,很好 - 很新,而且我已經完成了這個項目。 – 2011-12-15 14:41:25