Skip to content

Commit 4421a00

Browse files
Merge pull request #1 from SyncfusionExamples/nullValues
How to set null value for any cell in the DataGridNumericColumn in .NET MAUI DataGrid?
2 parents 07ad8fa + 85ffa8d commit 4421a00

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+9561
-2
lines changed

README.md

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,55 @@
1-
# How-to-set-null-value-for-any-cell-in-the-DataGridNumericColumn-in-.NET-MAUI-DataGrid-
2-
This demo shows how to set null value for any cell in the DataGridNumericColumn in .NET MAUI DataGrid ?
1+
# How to set null value for any cell in the DataGridNumericColumn in .NET MAUI DataGrid?
2+
In this article, we will show you how to set null value for any cell in the DataGridNumericColumn in [.Net Maui DataGrid](https://www.syncfusion.com/maui-controls/maui-datagrid).
3+
4+
## xaml
5+
The code below demonstrates how to set a null value for any cell in the DataGridNumericColumn within a DataGrid. The [DataGridNumericColumn.AllowNullValue](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.DataGrid.DataGridNumericColumn.html#Syncfusion_Maui_DataGrid_DataGridNumericColumn_AllowNullValue) property, when set to true, allows you to commit a null value to the respective cell during the end edit.
6+
```
7+
<ContentPage.BindingContext>
8+
<local:EmployeeViewModel x:Name="viewModel"/>
9+
</ContentPage.BindingContext>
10+
11+
<syncfusion:SfDataGrid x:Name="sfGrid"
12+
SelectionMode="Multiple"
13+
NavigationMode="Cell"
14+
GridLinesVisibility="Both"
15+
AllowEditing="True"
16+
AutoGenerateColumnsMode="None"
17+
HeaderGridLinesVisibility="Both"
18+
ColumnWidthMode="Auto"
19+
ItemsSource="{Binding Employees}">
20+
21+
<syncfusion:SfDataGrid.Columns>
22+
<syncfusion:DataGridNumericColumn MappingName="EmployeeID"
23+
Format="#"
24+
HeaderText="Employee ID"
25+
AllowNullValue="True" />
26+
<syncfusion:DataGridTextColumn MappingName="Name"
27+
HeaderText="Employee Name" />
28+
<syncfusion:DataGridTextColumn MappingName="Title"
29+
HeaderText="Designation" />
30+
<syncfusion:DataGridDateColumn MappingName="HireDate"
31+
HeaderText="Hire Date" />
32+
</syncfusion:SfDataGrid.Columns>
33+
34+
</syncfusion:SfDataGrid>
35+
36+
</syncfusion:SfDataGrid>
37+
```
38+
39+
**Note**
40+
The NumericColumn property must be of a nullable type for the AllowNullValue property to function correctly.
41+
42+
![NullValues.gif](https://support.syncfusion.com/kb/agent/attachment/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMzNDI1Iiwib3JnaWQiOiIzIiwiaXNzIjoic3VwcG9ydC5zeW5jZnVzaW9uLmNvbSJ9.ACFqPuPBElAeIRTjYb9dgLzVzuoPeLlQV3oRAdHTrrs)
43+
44+
[View sample in GitHub](https://github.com/SyncfusionExamples/How-to-set-null-value-for-any-cell-in-the-DataGridNumericColumn-in-.NET-MAUI-DataGrid)
45+
46+
Take a moment to explore this [documentation](https://help.syncfusion.com/maui/datagrid/overview), where you can find more information about Syncfusion .NET MAUI DataGrid (SfDataGrid) with code examples. Please refer to this [link](https://www.syncfusion.com/maui-controls/maui-datagrid) to learn about the essential features of Syncfusion .NET MAUI DataGrid (SfDataGrid).
47+
48+
##### Conclusion
49+
50+
I hope you enjoyed learning about how to set a null value for any cell in the DataGridNumericColumn in .NET MAUI DataGrid (SfDataGrid).
51+
52+
You can refer to our [.NET MAUI DataGrid’s feature tour](https://www.syncfusion.com/maui-controls/maui-datagrid) page to learn about its other groundbreaking feature representations. You can also explore our [.NET MAUI DataGrid Documentation](https://help.syncfusion.com/maui/datagrid/getting-started) to understand how to present and manipulate data.
53+
For current customers, you can check out our .NET MAUI components on the [License and Downloads](https://www.syncfusion.com/sales/teamlicense) page. If you are new to Syncfusion, you can try our 30-day [free trial](https://www.syncfusion.com/downloads/maui) to explore our .NET MAUI DataGrid and other .NET MAUI components.
54+
55+
If you have any queries or require clarifications, please let us know in the comments below. You can also contact us through our [support forums](https://www.syncfusion.com/forums), [Direct-Trac](https://support.syncfusion.com/create) or [feedback portal](https://www.syncfusion.com/feedback/maui?control=sfdatagrid), or the feedback portal. We are always happy to assist you!
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.12.35506.116 d17.12
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SfDataGridSample", "SfDataGridSample\SfDataGridSample.csproj", "{EEB0310E-49AF-4663-87C2-E585EEFE9E5E}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{EEB0310E-49AF-4663-87C2-E585EEFE9E5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{EEB0310E-49AF-4663-87C2-E585EEFE9E5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{EEB0310E-49AF-4663-87C2-E585EEFE9E5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{EEB0310E-49AF-4663-87C2-E585EEFE9E5E}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
EndGlobal
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version = "1.0" encoding = "UTF-8" ?>
2+
<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
4+
xmlns:local="clr-namespace:SfDataGridSample"
5+
x:Class="SfDataGridSample.App">
6+
<Application.Resources>
7+
<ResourceDictionary>
8+
<ResourceDictionary.MergedDictionaries>
9+
<ResourceDictionary Source="Resources/Styles/Colors.xaml" />
10+
<ResourceDictionary Source="Resources/Styles/Styles.xaml" />
11+
</ResourceDictionary.MergedDictionaries>
12+
</ResourceDictionary>
13+
</Application.Resources>
14+
</Application>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
namespace SfDataGridSample
2+
{
3+
public partial class App : Application
4+
{
5+
public App()
6+
{
7+
InitializeComponent();
8+
}
9+
10+
protected override Window CreateWindow(IActivationState? activationState)
11+
{
12+
return new Window(new AppShell());
13+
}
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<Shell
3+
x:Class="SfDataGridSample.AppShell"
4+
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
5+
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
6+
xmlns:local="clr-namespace:SfDataGridSample"
7+
Shell.FlyoutBehavior="Flyout"
8+
Title="SfDataGridSample">
9+
10+
<ShellContent
11+
Title="Home"
12+
ContentTemplate="{DataTemplate local:MainPage}"
13+
Route="MainPage" />
14+
15+
</Shell>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace SfDataGridSample
2+
{
3+
public partial class AppShell : Shell
4+
{
5+
public AppShell()
6+
{
7+
InitializeComponent();
8+
}
9+
}
10+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
4+
xmlns:syncfusion="clr-namespace:Syncfusion.Maui.DataGrid;assembly=Syncfusion.Maui.DataGrid"
5+
xmlns:local="clr-namespace:SfDataGridSample"
6+
x:Class="SfDataGridSample.MainPage">
7+
8+
<ContentPage.BindingContext>
9+
<local:EmployeeViewModel x:Name="viewModel" />
10+
</ContentPage.BindingContext>
11+
12+
<syncfusion:SfDataGrid x:Name="sfGrid"
13+
SelectionMode="Multiple"
14+
NavigationMode="Cell"
15+
GridLinesVisibility="Both"
16+
AllowEditing="True"
17+
AutoGenerateColumnsMode="None"
18+
HeaderGridLinesVisibility="Both"
19+
ColumnWidthMode="Auto"
20+
ItemsSource="{Binding Employees}">
21+
22+
<syncfusion:SfDataGrid.Columns>
23+
<syncfusion:DataGridNumericColumn MappingName="EmployeeID"
24+
Format="#"
25+
HeaderText="Employee ID"
26+
AllowNullValue="True" />
27+
<syncfusion:DataGridTextColumn MappingName="Name"
28+
HeaderText="Employee Name" />
29+
<syncfusion:DataGridTextColumn MappingName="Title"
30+
HeaderText="Designation" />
31+
<syncfusion:DataGridDateColumn MappingName="HireDate"
32+
HeaderText="Hire Date" />
33+
</syncfusion:SfDataGrid.Columns>
34+
35+
</syncfusion:SfDataGrid>
36+
37+
38+
</ContentPage>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+

2+
namespace SfDataGridSample
3+
{
4+
public partial class MainPage : ContentPage
5+
{
6+
public MainPage()
7+
{
8+
InitializeComponent();
9+
}
10+
}
11+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using Microsoft.Extensions.Logging;
2+
using Syncfusion.Maui.Core.Hosting;
3+
4+
namespace SfDataGridSample
5+
{
6+
public static class MauiProgram
7+
{
8+
public static MauiApp CreateMauiApp()
9+
{
10+
var builder = MauiApp.CreateBuilder();
11+
builder
12+
.UseMauiApp<App>()
13+
.ConfigureSyncfusionCore()
14+
.ConfigureFonts(fonts =>
15+
{
16+
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
17+
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
18+
});
19+
20+
#if DEBUG
21+
builder.Logging.AddDebug();
22+
#endif
23+
24+
return builder.Build();
25+
}
26+
}
27+
}
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
using System.ComponentModel;
2+
3+
namespace SfDataGridSample
4+
{
5+
public class Employee : INotifyPropertyChanged
6+
{
7+
private int? _employeeID;
8+
private string? _name;
9+
private long _iDNumber;
10+
private int _contactID;
11+
private string? _loginID;
12+
private int _managerID;
13+
private string? _title;
14+
private DateTime _birthDate;
15+
private string? _maritalStatus;
16+
private string? _gender;
17+
private DateTime _hireDate;
18+
private int _sickLeaveHours;
19+
private double _salary;
20+
private bool _employeeStatus;
21+
private int _rating;
22+
23+
public int? EmployeeID
24+
{
25+
get { return _employeeID; }
26+
set
27+
{
28+
_employeeID = value;
29+
OnPropertyChanged(nameof(EmployeeID));
30+
}
31+
}
32+
public string? Name
33+
{
34+
get { return _name; }
35+
set
36+
{
37+
_name = value;
38+
OnPropertyChanged(nameof(Name));
39+
}
40+
}
41+
public long IDNumber
42+
{
43+
get { return _iDNumber; }
44+
set
45+
{
46+
_iDNumber = value;
47+
OnPropertyChanged(nameof(IDNumber));
48+
}
49+
}
50+
public string? Title
51+
{
52+
get { return _title; }
53+
set
54+
{
55+
_title = value;
56+
OnPropertyChanged(nameof(Title));
57+
}
58+
}
59+
public int ContactID
60+
{
61+
get { return _contactID; }
62+
set
63+
{
64+
_contactID = value;
65+
OnPropertyChanged(nameof(ContactID));
66+
}
67+
}
68+
public DateTime BirthDate
69+
{
70+
get { return _birthDate; }
71+
set
72+
{
73+
_birthDate = value;
74+
OnPropertyChanged(nameof(BirthDate));
75+
}
76+
}
77+
public string? MaritalStatus
78+
{
79+
get { return _maritalStatus; }
80+
set
81+
{
82+
_maritalStatus = value;
83+
OnPropertyChanged(nameof(MaritalStatus));
84+
}
85+
}
86+
public string? Gender
87+
{
88+
get { return _gender; }
89+
set
90+
{
91+
_gender = value;
92+
OnPropertyChanged(nameof(Gender));
93+
}
94+
}
95+
public DateTime HireDate
96+
{
97+
get { return _hireDate; }
98+
set
99+
{
100+
_hireDate = value;
101+
OnPropertyChanged(nameof(HireDate));
102+
}
103+
}
104+
public int SickLeaveHours
105+
{
106+
get { return _sickLeaveHours; }
107+
set
108+
{
109+
_sickLeaveHours = value;
110+
OnPropertyChanged(nameof(SickLeaveHours));
111+
}
112+
}
113+
public double Salary
114+
{
115+
get { return _salary; }
116+
set
117+
{
118+
_salary = value;
119+
OnPropertyChanged(nameof(Salary));
120+
}
121+
}
122+
public string? LoginID
123+
{
124+
get { return _loginID; }
125+
set
126+
{
127+
_loginID = value;
128+
OnPropertyChanged(nameof(LoginID));
129+
}
130+
}
131+
public int ManagerID
132+
{
133+
get { return _managerID; }
134+
set
135+
{
136+
_managerID = value;
137+
OnPropertyChanged(nameof(ManagerID));
138+
}
139+
}
140+
public bool EmployeeStatus
141+
{
142+
get { return _employeeStatus; }
143+
set
144+
{
145+
_employeeStatus = value;
146+
OnPropertyChanged(nameof(EmployeeStatus));
147+
}
148+
}
149+
public int Rating
150+
{
151+
get { return _rating; }
152+
set
153+
{
154+
_rating = value;
155+
OnPropertyChanged(nameof(Rating));
156+
}
157+
}
158+
159+
public event PropertyChangedEventHandler? PropertyChanged;
160+
161+
public void OnPropertyChanged(string name)
162+
{
163+
if (this.PropertyChanged != null)
164+
this.PropertyChanged(this, new PropertyChangedEventArgs(name));
165+
}
166+
}
167+
}

0 commit comments

Comments
 (0)