<UserControl.Resources>
<Style TargetType="DatePickerTextBox">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox Text="{Binding Path=SelectedDate,UpdateSourceTrigger=PropertyChanged, StringFormat='yyyy/MM/dd HH:mm:ss', RelativeSource={RelativeSource AncestorType=DatePicker}}" BorderThickness="0" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<StackPanel Orientation="Horizontal" Margin="5" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4">
<Label Content="{DynamicResource From:}" MinWidth="50" HorizontalContentAlignment="Right"></Label>
<DatePicker Name="dtp" Margin="5,0" Text="{Binding DateFrom,UpdateSourceTrigger=PropertyChanged}" MinWidth="160"></DatePicker>
<Label Content="{DynamicResource To:}" MinWidth="50" HorizontalContentAlignment="Right"></Label>
<DatePicker Margin="5,0" Text="{Binding DateTo,UpdateSourceTrigger=PropertyChanged}" MinWidth="160"></DatePicker>
</StackPanel>
<RadioButton Content="{DynamicResource Last month}" IsChecked="{Binding IsLastMonth}" Grid.Row="1" Grid.Column="0" Margin="5" ></RadioButton>
<RadioButton Content="{DynamicResource Last week}" IsChecked="{Binding IsLastWeek}" Grid.Row="1" Grid.Column="1" Margin="5" ></RadioButton>
<RadioButton Content="{DynamicResource Yesterday}" IsChecked="{Binding IsYesterday}" Grid.Row="1" Grid.Column="2" Margin="5" ></RadioButton>
<RadioButton Content="{DynamicResource Today}" IsChecked="{Binding IsToday}" Grid.Row="2" Grid.Column="0" Margin="5" ></RadioButton>
private string _DateFrom = DateTime.Now.AddDays(-1).ToString();
public string DateFrom
{
get { return _DateFrom; }
set
{
_DateFrom = value;
RaisePropertyChanged("DateFrom");
}
}
private string _DateTo = DateTime.Now.ToString();
public string DateTo
{
get { return _DateTo; }
set
{
_DateTo = value;
DateTime dt = Convert.ToDateTime(value);
dt = new DateTime(dt.Year, dt.Month, dt.Day);
int sec = (24 * 60) * 60 - 1;
string tem = dt.AddSeconds(sec).ToString();
if (_DateTo.EndsWith("00:00:00"))
DateTo = tem;
RaisePropertyChanged("DateTo");
}
}
private bool _IsLastMonth;
public bool IsLastMonth
{
get { return _IsLastMonth; }
set
{
_IsLastMonth = value;
if (value)
{
//GregorianCalendar gc = new GregorianCalendar();
//PersianDate pd = new PersianDate(DateTime.Now);
DateTime dt = DateTime.Now;
dt = new DateTime(dt.Year, dt.Month, dt.Day);
dt = dt.AddDays(-dt.Day);
int days = dt.Day - 1;
DateFrom = dt.AddDays(-days).ToString();
int sec = (24 * 60) * 60 - 1;
DateTo = dt.AddSeconds(sec).ToString();
}
RaisePropertyChanged("IsLastMonth");
}
}
private bool _IsLastWeek;
public bool IsLastWeek
{
get { return _IsLastWeek; }
set
{
_IsLastWeek = value;
if (value)
{
DateTime dt = DateTime.Now;
dt = new DateTime(dt.Year, dt.Month, dt.Day);
dt = dt.AddDays(-(int)dt.DayOfWeek - 1);
DateFrom = dt.AddDays(-6).ToString();
int sec = (24 * 60) * 60 - 1;
DateTo = dt.AddSeconds(sec).ToString();
}
RaisePropertyChanged("IsLastWeek");
}
}
private bool _IsYesterday;
public bool IsYesterday
{
get { return _IsYesterday; }
set
{
_IsYesterday = value;
if (value)
{
DateTime dt = DateTime.Now;
dt = new DateTime(dt.Year, dt.Month, dt.Day);
dt = dt.AddDays(-1);
DateFrom = dt.ToString();
int sec = (24 * 60) * 60 - 1;
DateTo = dt.AddSeconds(sec).ToString();
}
RaisePropertyChanged("IsYesterday");
}
}
private bool _IsToday;
public bool IsToday
{
get { return _IsToday; }
set
{
_IsToday = value;
if (value)
{
DateTime dt = DateTime.Now;
dt = new DateTime(dt.Year, dt.Month, dt.Day);
DateFrom = dt.ToString();
int sec = (24 * 60) * 60 - 1;
DateTo = dt.AddSeconds(sec).ToString();
}
RaisePropertyChanged("IsToday");
}
}