I'm trying to compare two dates selected from two DatePicker
s, if the end date is lower than start date the button must be disabled, this is my xaml structure:
<DatePicker x:Name="StartDate" />
<DatePicker x:Name="EndDate" />
<Button>
<Button.Resources>
<Style TargetType="Button" BasedOn="{StaticResource ButtonStyle}">
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding>
<MultiBinding.Converter>
<Converters:DateComparer />
</MultiBinding.Converter>
<Binding ElementName="StartDate" Path="SelectedDate"/>
<Binding ElementName="EndDate" Path="SelectedDate" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Resources>
</Button>
this is my converter:
public class DateComparer : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values.Length < 2)
return false;
DateTime startDate = DateTime.ParseExact(values[0].ToString(),
"dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
DateTime endDate = DateTime.ParseExact(values[1].ToString(),
"dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
//La data finale è minore della data iniziale
if (endDate < startDate)
return true;
return false;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
on the values
object I get Unsect Value, why?