Необходимо отформатировать строку в GridView ListView в коде позади.XAML не вариант, так как данные и столбцы создаются в коде.
XAML-версия нужного формата даты:
<TextBlock TextWrapping="NoWrap" Text="{Binding Path=DateTime, Mode=OneWay, StringFormat={}{0:yyyy/MM/dd hh:mm tt}}" />
. В этом случае я не могу использовать XAML, так как количество столбцов различается и столбцы, которые должны отображать дату в этом форматеменяется.Я просто не могу понять, как применить этот формат даты в коде позади.Ниже приведен рабочий код для построения столбцов.
GridViewColumn gvc;
GridViewColumnHeader gvch;
Binding gvBinding;
DataTemplate template;
FrameworkElementFactory textblock;
// Data Column
gvc = new GridViewColumn();
gvch = new GridViewColumnHeader();
gvch.Content = SF.DispName;
gvch.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Stretch;
gvch.VerticalContentAlignment = System.Windows.VerticalAlignment.Bottom;
gvch.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
gvc.Header = gvch;
gvBinding = new Binding();
gvBinding.Mode = BindingMode.OneWay;
gvBinding.Path = new PropertyPath("[" + (sDocBaseResultDocsFieldsIndex * 2).ToString() + "]");
template = new DataTemplate();
textblock = new FrameworkElementFactory(typeof(TextBlock));
textblock.SetValue(TextBlock.TextProperty, gvBinding);
// textblock.SetValue(TextBlock.TextTrimmingProperty, TextTrimming.WordEllipsis);
template.VisualTree = new FrameworkElementFactory(typeof(Grid));
template.VisualTree.AppendChild(textblock);
gvc.CellTemplate = template;
gvSrchResultsScore.Columns.Add(gvc);
sDocBaseResultDocsFieldsIndex++;
Что мне нужно добавить, это что-то вроде ниже, но не могу понять это.Я пробовал каждую перестановку {} {0: гггг / мм / дд чч: мм тт}}, о которой я могу думать.
if (sDocBaseResultDocsFieldsIndex == 12) gvBinding.StringFormat = "Help";