During a drag and drop, is there anyway I could find out over which specific day of a XamMonthCalendar control the user chose?
I am familiar with WPF drag and drop and I have hooked up the oXamMonthCalendar_DragOver, oXamMonthCalendar_Drop and oXamMonthCalendar_DragLeave events.
If there's any chance of this being done, I can create a test application I can upload with the basic drag and drop functionality.
The e.OriginalSource for the events should still be whatever descendant element was hit-tested so you could probably use something like our Utilities.GetAncestorFromType to get the calendar item you are over.
Hi Andrew,
Unfortunately, this is not working - I'm getting the CalendarDay using Utilities.GetAncestorFromType, but the CalendarDay.StartDate is always "8/25/2008".
I tried it and it seems to work fine. In what event are you looking at it? I tried using Drop and DragOver and in both cases it gave me the correct element. Can you post a sample demonstrating the problem?
I created a sample app which I had sent to support. I'll clean it up a bit and add the code that accesses the CalendayDay. I'll have something ready by tomorrow.
Andrew, thanks for the help!
You're right, using e.OriginalSource and GetAncestorFromType worked! Here's the line I had to correct:
oCalendarDay = CType(GetAncestorFromType(e.OriginalSource, GetType(CalendarDay), False), CalendarDay)
Thanks!
Note: I have deleted my test project - but if anyone is interested in getting a copy, shoot me an email through www.ehuna.org.
I'm not in a place to run your code but a quick look seems to indicate that you are using "sender" and not "e.OriginalSource" as I recommended in the call to GetAncestorFromType - the sender in an event handler will always be the class for which you have added the event (so the XMC in this case).
Andrew, you'll find my sample project here:
[... sample project deleted ...]
Once you extract the contents you can run bin\Debug\XamMonthCalendarTest.exe; source code can be compiled using XamMonthCalendarTest.vbproj
Notice that in both oXamMonthCalendar_DragOver() and oXamMonthCalendar_Drop(), oCalendarDay is always "8/25/2008".