Silverlight DatePicker в DataGrid допускает NULL даты

У меня есть DataGrid, у которого в качестве одного из столбцов есть DatePicker (для шаблона редактирования). Есть ли способ сохранить это, но все же позволить пользователю вводить дату NULL?


person Phil    schedule 20.11.2009    source источник


Ответы (2)


Сделайте следующее (в Silverlight 4):

1) Связанное свойство DataContext должно иметь значение Nullable (или Datetime?)

2) В XAML установите TargetNullValue = '' свойства привязки примерно так:

Text="{Binding DocumentDate, Mode=TwoWay, StringFormat='yyyy-MM-dd', TargetNullValue=''}"
person synergetic    schedule 23.07.2010

Обнаружил это при исследовании той же проблемы. Вот как я это исправил, так как он не был отмечен.

Я использовал преобразователь, который преобразует значение в null, если это просто пустой объект времени данных.

public class DateTimeToNullConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            DateTime dt = new DateTime(); 
            if (dt.Equals(value)) return null; 
            return value;
        } 
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
        { 
            return value; 
        }
    }

XAML:

SelectedValue="{Binding CurrentContractRenewal.ExpiryDate, Mode=TwoWay, Converter={StaticResource DateTimeToNullConverter}}" 
person Luke    schedule 28.06.2011