Недавно задался целью вывести обычную дату в поле таблицы. На первый взгляд ничего "военного", но вот незадача, дата выводиться в системном формате (по умолчанию) в данном случае это день/месяц/год часы:минуты (кажется было так).
Мне потребовалось выводить только день и месяц, причем месяц сокращенный: 25.окт.
Порывшись немного в интернете я смастерил следующий конвертер.
Я не буду подробно описывать связь класса моделью отображения и привязку данных к колонке, это все можно найти на сайте msdn.
В данном примере конвертер был встроен в dataGrid который находился на UserControl.
XAML:
Описываем конвертер
<UserControl.Resources>
<uc:ConvertDate x:Key="dateConv"/>
</UserControl.Resources>
......................................................
ниже используем при выводе данных:
<my:DataGridTextColumn Header="Дата"
Binding="{Binding PaymentDay, Converter={StaticResource dateConv}}" CanUserResize="False" />
CS файл
Данный класс я разместил в том же namespace что и окно.
public class ConvertDate : IValueConverter
{
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
{
String st = "";
if (value is DateTime)
{
// в данном месте можно выполнить требуемые преобразования и задать
// любой вариант конвертации
st = ((DateTime)value).ToString("dd.MMM");
}
return st;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException("This method should never be called");
}
}
Подписаться на:
Комментарии к сообщению (Atom)

Комментариев нет:
Отправить комментарий