dotnet / maui

.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
https://dot.net/maui
MIT License
22.22k stars 1.76k forks source link

[Enhancement] DataGrid Control #1259

Open zealeyes opened 3 years ago

zealeyes commented 3 years ago

Summary

Please provide a datagrid control.

omnilogix commented 3 years ago

Will there be a Maui native DataGrid control? This is a fundamental control for LOB apps. It would really help the migration of LOB apps to a cross platform framework. Being dependent on a 3rd party library for this makes Maui a non-starter

jfversluis commented 3 years ago

Nothing is planned right now. If you need it please check with third-party vendors that have great solutions in place. We will keep this issue here as a feature request for the future.

taozuhong commented 3 years ago

Most mobile apps are data-driven apps, the DataGrid control will make it easy to port them to MAUI and Windows mobile.

Aldebaran91 commented 3 years ago

Without datagrid in maui I will stay with WPF. Shouldn‘t something new be better than the predecessors?

jfversluis commented 3 years ago

Shouldn‘t something new be better than the predecessors?

Absolutely. But better does not mean more/new controls. In .NET MAUI we already gain a completely new architecture, performance gains, single-project approach, better resource management and much much more.

If you are happy with WPF, definitely keep doing that! Also note that I said this is not planned right now, simply because we are already pretty busy with the things I just mentioned. That doesn't mean it will never come.

In the meanwhile, I'm afraid this specific feature request is a bit thin. There are a lot of different DataGrids out there with all different features. If anyone wants to pitch in here, could you please add more details on what features this DataGrid should have according to you? Please be as detailed as possible with maybe some pseudo code, screenshots or whatever you could come up with.

Thanks!

omnilogix commented 3 years ago

Shouldn‘t something new be better than the predecessors?

It should at least be equal...

GeraudFabien commented 3 years ago

Been equal doesn't mean anythinks. It have some problems like the lack of datagrid. But have a lot of advantage like new platform (Windows & mac).

Datagrid are not hard to do depending on how much feature you want to do (filtering, moving column around, Grouping by one column (Pick by the user), can be complex to do and maintain). You have solution Devexpress$, Telerik$

Algorithman commented 2 years ago

Absolutely. But better does not mean more/new controls. In .NET MAUI we already gain a completely new architecture, performance gains, single-project approach, better resource management and much much more.

Specially the datagrid was in dire need of performance gains. Locking the UI thread for a couple seconds just to display a datagrid with 30-40 columns/30 rows isn't acceptable. Yes I do quite a bit of tinkering with the autogenerated columns, but the main cpu hog for me is WPF RenderMessageHandlers (collapsing columns isn't handled properly i think).

And the datagrid is essential for any productive software used in small/middle (probably big too) business anyway. Nothing provides a quick overview over multiple entries like a nice datagrid. Don't think only tablets and phones, there are still PC's out there too.

SongOfYouth commented 2 years ago

The most reason of trying to use winui not maui is the lack of datagrid, but i tried to using wpf becuse some winform control can't be migrated in my product. by the way, the lack is also be in winui.

taozuhong commented 2 years ago

About DataGrid key features, I think the following should be supported:

  1. Show data with grid
  2. Coloring row and cell
  3. Inline edit in cell
  4. Sort with column
  5. Show / hide / resize the column
  6. Styling the row and cell(bg/fg color, font, Highlighting)
  7. Row and cell selection support
  8. Events support
Chumba commented 2 years ago

+1 on this absolutely essential control. Any semblance of a business application requires the ability to display data in a Grid like we've gotten used to in WPF. With it missing Maui is a complete non-starter.

wadie82 commented 2 years ago

what a shame, the data grid is absolutely essential for any application using data / presenting data. It is an essential block to every application really. It is a massive put off to go to third party vendor for developers who try to build their first apps. The amount of money (to buy the 3rd party control) or the amount of time (to develop their own data grid) for such a basic presentation layout just makes it not worth it at all to spend your time in .NET MAUI.

Aldebaran91 commented 2 years ago

Shouldn‘t something new be better than the predecessors?

Absolutely. But better does not mean more/new controls. In .NET MAUI we already gain a completely new architecture, performance gains, single-project approach, better resource management and much much more.

If you are happy with WPF, definitely keep doing that! Also note that I said this is not planned right now, simply because we are already pretty busy with the things I just mentioned. That doesn't mean it will never come.

In the meanwhile, I'm afraid this specific feature request is a bit thin. There are a lot of different DataGrids out there with all different features. If anyone wants to pitch in here, could you please add more details on what features this DataGrid should have according to you? Please be as detailed as possible with maybe some pseudo code, screenshots or whatever you could come up with.

Thanks!

Sorry for the long wait. I like the datagrid from WPF but I always run into the same problem. Handling big data the smart way. So data and visual virtualisation is definitely a must. The amount of data per app is rising. Showing 50 items out of 15 million without paging is always a request I get from the customers. So what I need is a simple datagrid (kind like a table which I can extend the way I want). Extensions for the new datagrid like Caching, Virtualizing, Filter, ExportAndTransform would be great to create the best experience without compromising performance for my customers. Not all need all features at the same time.

mouralabank commented 1 year ago

Any update?

heulendoch commented 1 year ago

Can't believe they not included datagrid.

upswing1 commented 1 year ago

it is needed no doubt!

SongOfYouth commented 1 year ago

it is needed no doubt!

maui is futureless, just to uno or avalonia.

yyliveyy commented 1 year ago

It's hard to imagine a UI framework without a datagrid. This is clearly not a mature framework.

jacobscheelhansen commented 1 year ago

A datagrid is differently needed. A datagrid is used so often when displaying data like a list.

NandoLopes commented 1 year ago

To be honest, I would be happy with just the option to show/hide border on the Grid, or on the grid columns/rows, and also change the color. This would be enough to work with, and wouldn't be so complex as creating a whole new control.

jacobscheelhansen commented 1 year ago

To be honest, I would be happy with just the option to show/hide border on the Grid, or on the grid columns/rows, and also change the color. This would be enough to work with, and wouldn't be so complex as creating a whole new control.

If they for some reason do not want to make a datagrid, this would definitely be a good alternative

taozuhong commented 1 year ago

https://github.com/akgulebubekir/Maui.DataGrid

NandoLopes commented 1 year ago

https://github.com/akgulebubekir/Maui.DataGrid

I'm using DevExpress Data Grid, but to be honest, it's kinda sad to depend on external libraries for such basic functions.

muradcsc415 commented 1 year ago

https://github.com/akgulebubekir/Maui.DataGrid

this for disply only how i can make invoice by this grid

muradcsc415 commented 1 year ago

we needs DataGrid in MAUI like datagrid of silverlight it is easy for using

XeonG commented 1 year ago

the state of MAUI.. what a joke framework

SongOfYouth commented 12 months ago

just turn to uno platform, friend.

---Original--- From: @.> Date: Sun, Oct 22, 2023 03:49 AM To: @.>; Cc: @.**@.>; Subject: Re: [dotnet/maui] [Enhancement] DataGrid Control (#1259)

the state of MAUI.. what a joke framework

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

yyliveyy commented 12 months ago

I hope MAUI will be more advanced with DataGroupGird functionality, making it easier to develop enterprise level applications. But our hopes cannot be too high, so we lower our expectations and hope to see the basic features of DataGird in the next version (. NET 9).

AceOubahaTLI commented 8 months ago

+1 on this, it is one of the major reasons our org is not migrating to MAUI and is considering non-.NET options for future Android app development

spacesdima123456 commented 8 months ago

I'm just horrified that there is no DataGrid. They suggest using third-party solutions that are very expensive, what’s the point of buying a third-party solution for the sake of one control?

AlleSchonWeg commented 8 months ago

The DevExpress .NET MAUI Controls are available free-of-charge: https://www.devexpress.com/maui/ There is also a Data Grid.

GeraudFabien commented 8 months ago

The DevExpress .NET MAUI Controls are available free-of-charge: https://www.devexpress.com/maui/ There is also a Data Grid.

Until may. If you still develop after. Good luck.

upswing1 commented 8 months ago

I agree a datagrid is a must have. It would be great to have that control inside the community toolkit.

Sent from my T-Mobile 5G Device Get Outlook for Androidhttps://aka.ms/AAb9ysg


From: Geraud Fabien @.> Sent: Tuesday, March 12, 2024 12:54:57 PM To: dotnet/maui @.> Cc: upswing1 @.>; Comment @.> Subject: Re: [dotnet/maui] [Enhancement] DataGrid Control (#1259)

The DevExpress .NET MAUI Controls are available free-of-charge: https://www.devexpress.com/maui/ There is also a Data Grid.

Until may. If you still develop after. Good luck.

— Reply to this email directly, view it on GitHubhttps://github.com/dotnet/maui/issues/1259#issuecomment-1992125383, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIGJPKL4ZJF53WH4DRQ2BG3YX4XODAVCNFSM46P2E5LKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJZGIYTENJTHAZQ. You are receiving this because you commented.Message ID: @.***>

Sofiya-kumar commented 7 months ago

We have a few options for data grids using 3rd party tools. But it's good to have with MAUI

pythonista commented 6 months ago

The DevExpress .NET MAUI Controls are available free-of-charge: https://www.devexpress.com/maui/ There is also a Data Grid.

Unfortunately, the DevExpress data grid does not support the Win platform, Android and iOS only :( Besides, I tried the SyncFusion data grid, and It seems to work but has intractable problems on the Win platform (generates only checkbox columns, empty column headers etc.)

It seems that third party vendors only sharpen their MAUI control sets for mobile platforms. :(

williambohrmann3 commented 5 months ago

We do not use third party controls due to the nature of our .NET MAUI app, therefore not having a data grid out of the box is not ideal.

AlleSchonWeg commented 5 months ago

A data grid is a very complex component. It can contain millions of rows. It should include functions like sorting, filtering, grouping, updates, inserts, deletes, data validation, export, virtualization etc. To be fair that should not be the scope from maui. They should focus on basic controls/layouts. Buttons, Labels, Lists.

Depend on your use case, you can create a grid layout or a CollectionView or a combination of grid and collectionview to create a matrix. If this is not enough you could try UraniumUI GridView or https://github.com/akgulebubekir/Maui.DataGrid . If this is still not enough try DevExpress free version. If you want all features/support for free you are at a dead end. ATM there is not such a control. The MAUI Team has limited resources to fix basic things. So it's unrealistic that they will develop a DataGrid.

XeonG commented 5 months ago

Its crazy to believe MS once upon a time actually made winforms and even had a datagrid.. A what you see is what you get ui builder with rich components provided

now they struggle to make basic controls/layouts. Buttons, Labels, Lists... no wonder Windows 11 and 12 are such garbage OS's, at this rate of decline Linux might actually have a desktop OS at the levels of Windows XP.. and we can make cross platform crapps with all basic button shit for every platform... idiocracy ui's here we are.

upswing1 commented 4 months ago

The community demand for this feature is evident from numerous comments in this thread. This is a must have control to support the creation of robust, enterprise-level applications. A DataGrid is a fundamental component for data analysis.

While third-party solutions exist, they often lack the deep integration and performance optimizations that an official control can provide. Maui also target desktop applications so can you imagine developing a desktop application using WPF and being told to just go ahead and use a third-party component? This is where we are with Maui controls; "yes, you can develop for windows, but we will not provide you with the fundamental controls to be competitive with WPF."

something needs to happen, and the sooner the better!

upswing1 commented 4 months ago

Beyond the DataGrid, the addition of TabView, TreeView, and DockPanel is also necessary. These controls are fundamental for creating complex and dynamic user interfaces. Integrating these controls natively into .NET MAUI is necessary for developers building modern, cross-platform applications and targeting Windows. I understand that these controls apply more to a desktop app and not necessarily for a mobile app. But if Maui is going to have the great future that it deserves, it is time to add these to the list of available components.

TobiasJoergensen commented 3 months ago

Bump this thread. It has been 3 years and people still ask for it.

ikram101 commented 2 months ago

DataGrid is needed.

Monsalma commented 1 month ago

I started playing with .NET MAUI a few months ago and soon became aware of the fact that MAUI doesn't contain a data grid control. So I created a data grid control from scratch as a side project.

The control is still in its early phase => I'd really appreciate your feedback. This is what I tried to achieve so far:

Here are some links I hope you'll find useful:

Thanks in advance for your feedback!

jacobscheelhansen commented 1 month ago

I started playing with .NET MAUI a few months ago and soon became aware of the fact that MAUI doesn't contain a data grid control. So I created a data grid control from scratch as a side project.

The control is still in its early phase => I'd really appreciate your feedback. This is what I tried to achieve so far:

  • Column width types (https://monsalma.net/monsalma-controls-for-net-maui/monsalma-data-grid-for-net-maui-column-width/) I'm coming from the WPF world (and some other worlds), so I'm used to fixed column width (in DIU/DIP), star () column width and Auto (fit content) width. For my data grid control I introduced the 4th width type - fixed percentage. This is nice when we want to, for instance, ensure that one column takes 50% of the width, and the rest of them take the rest (perhaps ).
  • Minimum and maximum column width (https://monsalma.net/monsalma-controls-for-net-maui/monsalma-data-grid-for-net-maui-column-width/) These can be fixed values (in DIU) or fixed percentage. The fixed percentage option is pretty nice in my opinion.
  • Virtualization (https://monsalma.net/monsalma-controls-for-net-maui-version-1-0-3-released-now-supporting-ui-virtualization/) Only subset of rows is loaded and rendered. The logic is explained in the linked post above. I'd like to emphasize that virtualization works when all rows have the same height, but also when they have variable height. Similarly, it works when column widths are predetermined (fixed width, fixed percentage and star), but also when they are not (fit content width type).
  • Templated columns The initial idea was to create a text column (with Label), editable text column (with Entry) and so on. I still plan to create more basic column types, but first I wanted to play with templated columns, as this is the most complex feature. My templated columns are defined with regular (read-only) and edit data templates. For instance, regular template can contain only Image and Label, and edit template can contain only Entry.
  • Scrolling The control internally contains a ScrollView control, so scrolling support (both vertical and horizontal) is embedded.
  • Single selection and multiple selection
  • Show/hide header row
  • Row styling - header row, odd row, even row, selected row

Here are some links I hope you'll find useful:

Thanks in advance for your feedback!

This looks great! I will have to try it at some point. What is the license like? It it free to use? Do you need credit when its used and if so how?

Monsalma commented 1 month ago

The license is GPL-3.0-or-later. It is free to use, but not open source (it could become in the future). I don't ask for any credit, it's up to you.

Thanks for trying it out!

omnilogix commented 1 week ago

@jfversluis It has been over 3 years since this initial request. Has there been any movement here? Even a non-edit datagrid would make a big difference

jfversluis commented 1 week ago

@omnilogix No news on this front. We don't have a first-party data grid control planned for the foreseeable future. Above some great options you can use today are mentioned!