Is there a way to add a new custom Display Mode to the WPF Calendar control nad how can it be done?
First, I want to describe my problem more in detail.
In my application I need a date (and time) picker in one control to select first a single date and then the time for this date.
The control (as it is) has three display modes which are Decade (showing 12 Years), Month (showing the 12 months of the selected year) and Days (showing the days of the selected month).
What I want to do is, adding another display mode “Hours” which then will show the 24 hours of the selected day.
So there are many problems.
- How to add this view?
- How to avoid closing the popup after selecting a date? -> it should switch to hours instead and close after selecting the hour
- How to add the arrows in the last view to show 12 hours and the halfs on page one of the hours view
- How to bind all this to the underlying datetime object which I am interested in at most because it contains what the user selected 😉
Hope the problem is clear. If there is no direct way to add a view to existing Calendar control than any idea how to solve this would be appreciated.
You could try the Extended WPF toolkit, if you are looking for a out-of-the-box solution. It does not do exactly what you are describing, but it does allow you to select a time in addition to a date.
But if it’s not enough, I am pretty sure you will have to make a completely new component. In most cases, a restyling of a component is sufficient to add new features, but in this case, you would most likely have to rewrite it from scratch.
As a workaround, we made a separate hour selection component, which were displayed on the side of the calendar. It’s simpler than to rewrite the whole thing anew.