Skip to content

Commit 89fdafb

Browse files
ES-975464 - Provided codes for UWP
1 parent de65c81 commit 89fdafb

File tree

1 file changed

+108
-2
lines changed

1 file changed

+108
-2
lines changed

README.md

Lines changed: 108 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ You can create your own column by overriding the [predefined column types](https
66

77
In the below code snippet, converter created to format the **DateTimeOffSet** value to DateTime by defining **ValueBinding** (edit) and **DisplayBinding** (non-edit).
88

9+
### For WPF:
910
``` c#
1011
public class DateTimeOffsetFormatConverter : IValueConverter
1112
{
@@ -119,7 +120,7 @@ public class GridDateTimeOffsetColumn : GridDateTimeColumn
119120

120121
In the below code snippet, created **GridDateTimeOffsetColumn** added to [SfDataGrid.Columns](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.Grid.SfDataGrid.html#Syncfusion_UI_Xaml_Grid_SfDataGrid_Columns) collection and specify the Pattern as FullDateTime. Since the **ShortDate** is the default pattern of **GridDateTimeColumn**.
121122

122-
### XAML
123+
#### XAML
123124

124125
``` xml
125126
<syncfusion:SfDataGrid x:Name="dataGrid"
@@ -131,7 +132,7 @@ In the below code snippet, created **GridDateTimeOffsetColumn** added to [SfData
131132
</syncfusion:SfDataGrid>
132133
```
133134

134-
### C#
135+
#### C#
135136

136137
``` c#
137138
this.datagrid1.Columns.Add(new GridDateTimeOffsetColumn()
@@ -141,3 +142,108 @@ this.datagrid1.Columns.Add(new GridDateTimeOffsetColumn()
141142
UseBindingValue = true
142143
});
143144
```
145+
146+
### For UWP:
147+
148+
``` csharp
149+
public class DateTimeOffsetFormatConverter : IValueConverter
150+
{
151+
private GridDateTimeOffsetColumn cachedColumn;
152+
153+
public DateTimeOffsetFormatConverter(GridDateTimeOffsetColumn column)
154+
{
155+
cachedColumn = column;
156+
}
157+
158+
object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
159+
{
160+
value = ((DateTimeOffset)value).DateTime;
161+
var column = cachedColumn as GridDateTimeColumn;
162+
163+
if (value == null || DBNull.Value == value)
164+
{
165+
if (column.AllowNullValue && column.MaxDate != System.DateTime.MaxValue && column.WaterMark == string.Empty)
166+
return column.MaxDate;
167+
168+
if (column.AllowNullValue && column.WaterMark != string.Empty)
169+
return column.WaterMark;
170+
171+
if (column.MaxDate != System.DateTime.MaxValue)
172+
return column.MaxDate;
173+
}
174+
175+
DateTime _columnValue;
176+
_columnValue = (DateTime)value;
177+
178+
if (_columnValue < column.MinDate)
179+
_columnValue = column.MinDate;
180+
181+
if (_columnValue > column.MaxDate)
182+
_columnValue = column.MaxDate;
183+
184+
return _columnValue.ToString(column.FormatString, CultureInfo.CurrentUICulture);
185+
}
186+
187+
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
188+
{
189+
throw new NotImplementedException();
190+
}
191+
}
192+
193+
public class DateTimeOffsetToDateTimeConverter : IValueConverter
194+
{
195+
object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
196+
{
197+
if (value == null)
198+
return null;
199+
return ((DateTimeOffset)value).DateTime;
200+
}
201+
202+
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
203+
{
204+
if (value == null)
205+
return null;
206+
return value is DateTimeOffset ? value : new DateTimeOffset((DateTime)value);
207+
}
208+
}
209+
```
210+
211+
In the below code snippet, **GridDateTimeOffsetColumn** column created from **GridDateTimeColumn**.
212+
213+
``` csharp
214+
public class GridDateTimeOffsetColumn:GridDateTimeColumn
215+
{
216+
protected override void SetDisplayBindingConverter()
217+
{
218+
if ((DisplayBinding as Binding).Converter == null)
219+
(DisplayBinding as Binding).Converter = new DateTimeOffsetFormatConverter(this);
220+
221+
if ((ValueBinding as Binding).Converter == null)
222+
(ValueBinding as Binding).Converter = new DateTimeOffsetToDateTimeConverter();
223+
}
224+
}
225+
```
226+
227+
In the below code snippet, created **GridDateTimeOffsetColumn** added to **SfDataGrid.Columns** collection and specify the full date-time pattern in **FormatString** as **F**. Since the **ShortDate** is the default pattern of **GridDateTimeColumn**.
228+
229+
#### XAML
230+
231+
``` xml
232+
<syncfusion:SfDataGrid x:Name="dataGrid"
233+
AutoGenerateColumns="False"
234+
ItemsSource="{Binding Orders}">
235+
<syncfusion:SfDataGrid.Columns>
236+
<local:GridDateTimeOffsetColumn FormatString="F"
237+
HeaderText="Order Date"
238+
MappingName="OrderDate"
239+
AllowInlineEditing="True"
240+
UseBindingValue="True"/>
241+
</syncfusion:SfDataGrid.Columns>
242+
</syncfusion:SfDataGrid>
243+
```
244+
245+
#### C#
246+
247+
``` csharp
248+
this.dataGrid.Columns.Add(new GridDateTimeOffsetColumn() { HeaderText = "Order Date", MappingName = "OrderDate", FormatString = "F" , AllowInlineEditing = true, UseBindingValue = true });
249+
```

0 commit comments

Comments
 (0)