Advertisement
Guest User

Untitled

a guest
Mar 1st, 2015
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. <Window x:Class="WpfApplication1.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="MainWindow" Height="350" Width="525"
  5. DataContext="{Binding RelativeSource={RelativeSource Self}}">
  6. <Grid>
  7. <Calendar SelectedDate="{Binding SelectedDate}" SelectedDatesChanged="TrySelectDate"/>
  8. </Grid>
  9. </Window>
  10.  
  11. using System;
  12. using System.ComponentModel;
  13. using System.Runtime.CompilerServices;
  14. using System.Windows;
  15. using System.Windows.Controls;
  16.  
  17. namespace WpfApplication1
  18. {
  19. public partial class MainWindow : Window, INotifyPropertyChanged
  20. {
  21. private DateTime? _selectedDate;
  22. public DateTime? SelectedDate
  23. {
  24. get { return _selectedDate; }
  25. set
  26. {
  27. _selectedDate = value;
  28. NotifyPropertyChanged();
  29. }
  30. }
  31.  
  32. public MainWindow()
  33. {
  34. InitializeComponent();
  35. }
  36.  
  37. public void TrySelectDate(object sender, SelectionChangedEventArgs args)
  38. {
  39. var date = args.AddedItems[0] as DateTime?;
  40. if (date == null)
  41. {
  42. return;
  43. }
  44.  
  45. // For testing... if user saved.
  46. var saved = false;
  47.  
  48. if (!saved)
  49. {
  50. if (args.RemovedItems.Count > 0)
  51. {
  52. var prevDate = args.RemovedItems[0] as DateTime?;
  53. if (prevDate != null)
  54. {
  55. SelectedDate = prevDate;
  56. }
  57. }
  58. }
  59. }
  60.  
  61. public event PropertyChangedEventHandler PropertyChanged;
  62. protected void NotifyPropertyChanged([CallerMemberName] string name = "")
  63. {
  64. if (PropertyChanged != null)
  65. {
  66. PropertyChanged(this, new PropertyChangedEventArgs(name));
  67. }
  68. }
  69. }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement