Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <Window x:Class="WpfApplication1.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="MainWindow" Height="350" Width="525"
- DataContext="{Binding RelativeSource={RelativeSource Self}}">
- <Grid>
- <Calendar SelectedDate="{Binding SelectedDate}" SelectedDatesChanged="TrySelectDate"/>
- </Grid>
- </Window>
- using System;
- using System.ComponentModel;
- using System.Runtime.CompilerServices;
- using System.Windows;
- using System.Windows.Controls;
- namespace WpfApplication1
- {
- public partial class MainWindow : Window, INotifyPropertyChanged
- {
- private DateTime? _selectedDate;
- public DateTime? SelectedDate
- {
- get { return _selectedDate; }
- set
- {
- _selectedDate = value;
- NotifyPropertyChanged();
- }
- }
- public MainWindow()
- {
- InitializeComponent();
- }
- public void TrySelectDate(object sender, SelectionChangedEventArgs args)
- {
- var date = args.AddedItems[0] as DateTime?;
- if (date == null)
- {
- return;
- }
- // For testing... if user saved.
- var saved = false;
- if (!saved)
- {
- if (args.RemovedItems.Count > 0)
- {
- var prevDate = args.RemovedItems[0] as DateTime?;
- if (prevDate != null)
- {
- SelectedDate = prevDate;
- }
- }
- }
- }
- public event PropertyChangedEventHandler PropertyChanged;
- protected void NotifyPropertyChanged([CallerMemberName] string name = "")
- {
- if (PropertyChanged != null)
- {
- PropertyChanged(this, new PropertyChangedEventArgs(name));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement