2011-12-15 24 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