Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. WPF
  4. WPF DataGrid uses a lot of memory, or is slow to scroll

WPF DataGrid uses a lot of memory, or is slow to scroll

Scheduled Pinned Locked Moved WPF
wpfperformancecsharpwcfdata-structures
27 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Mycroft Holmes

    Why not change your UI design to a more sensible layout. List all the setting values in a grid but make the user edit them in a dialog box. The user should have to double click on the grid row he wants to edit, pop a dialog with the data from that row, allow the user to edit the data of the single data row in discreet controls, save the data back to the underlying collection. The design eliminates the need to editable controls in the data grid and will simplify your life enormously.

    Never underestimate the power of human stupidity RAH

    L Offline
    L Offline
    Leif Simon Goodwin
    wrote on last edited by
    #11

    Thanks. I might well use that approach, depending on how much progress I make. Currently I am implementing a solution whereby the grid is read only but when the user double clicks on a cell, it becomes editable. So instead of plain text, they now see a combo box, or a tick box, or a numeric value editor. Double click elsewhere, and the cell becomes read only. This works well with the Microsoft WPF DataGrid though the memory usage is still rather high. The non editable cell control is a Label. I am also looking at the WPF Table View control on CodePlex. As yet I cannot find out how to make the current cell active when double clicked on, but the memory usage and speed are better. Clearly I can easily pop up a dialog to edit a cell, or a row as you suggest since I can trap the mouse double click. From searching around it does seem that the performance of grids is a widespread problem.

    P M 2 Replies Last reply
    0
    • L Leif Simon Goodwin

      Thanks. I might well use that approach, depending on how much progress I make. Currently I am implementing a solution whereby the grid is read only but when the user double clicks on a cell, it becomes editable. So instead of plain text, they now see a combo box, or a tick box, or a numeric value editor. Double click elsewhere, and the cell becomes read only. This works well with the Microsoft WPF DataGrid though the memory usage is still rather high. The non editable cell control is a Label. I am also looking at the WPF Table View control on CodePlex. As yet I cannot find out how to make the current cell active when double clicked on, but the memory usage and speed are better. Clearly I can easily pop up a dialog to edit a cell, or a row as you suggest since I can trap the mouse double click. From searching around it does seem that the performance of grids is a widespread problem.

      P Offline
      P Offline
      Pete OHanlon
      wrote on last edited by
      #12

      Don't use a Label if you can help it. Use a TextBlock instead. A Label is, relatively speaking, a much heavier weight control than a TextBlock.

      This space for rent

      L 1 Reply Last reply
      0
      • P Pete OHanlon

        Don't use a Label if you can help it. Use a TextBlock instead. A Label is, relatively speaking, a much heavier weight control than a TextBlock.

        This space for rent

        L Offline
        L Offline
        Leif Simon Goodwin
        wrote on last edited by
        #13

        Thanks, that's very helpful. :)

        P 1 Reply Last reply
        0
        • L Leif Simon Goodwin

          Thanks, that's very helpful. :)

          P Offline
          P Offline
          Pete OHanlon
          wrote on last edited by
          #14

          You're welcome.

          This space for rent

          1 Reply Last reply
          0
          • L Leif Simon Goodwin

            Thanks. I might well use that approach, depending on how much progress I make. Currently I am implementing a solution whereby the grid is read only but when the user double clicks on a cell, it becomes editable. So instead of plain text, they now see a combo box, or a tick box, or a numeric value editor. Double click elsewhere, and the cell becomes read only. This works well with the Microsoft WPF DataGrid though the memory usage is still rather high. The non editable cell control is a Label. I am also looking at the WPF Table View control on CodePlex. As yet I cannot find out how to make the current cell active when double clicked on, but the memory usage and speed are better. Clearly I can easily pop up a dialog to edit a cell, or a row as you suggest since I can trap the mouse double click. From searching around it does seem that the performance of grids is a widespread problem.

            M Offline
            M Offline
            Mycroft Holmes
            wrote on last edited by
            #15

            That design would drive nuts, double click to edit a single cell, double click to end editing, rinse and repeat. Plus you have horizontal scroll so you cannot see the entire row of data. I use the dialog style because the user can double click on a row and see and edit the entire set of data. The users often double click the row just to view the data. I have a rule that no more than 2 fields may be edited in a grid and absolutely no controls other than a textblock/box are to be used in a grid.

            Never underestimate the power of human stupidity RAH

            L 1 Reply Last reply
            0
            • M Mycroft Holmes

              That design would drive nuts, double click to edit a single cell, double click to end editing, rinse and repeat. Plus you have horizontal scroll so you cannot see the entire row of data. I use the dialog style because the user can double click on a row and see and edit the entire set of data. The users often double click the row just to view the data. I have a rule that no more than 2 fields may be edited in a grid and absolutely no controls other than a textblock/box are to be used in a grid.

              Never underestimate the power of human stupidity RAH

              L Offline
              L Offline
              Leif Simon Goodwin
              wrote on last edited by
              #16

              I agree. However, this is an application for engineers rather than general consumers, and this particular view displays configuration settings that will only be examined by two or three people who are based in our company (super users). The values are rather abstruse, and control fine details of a display device. Most of the time users will just examine the values, and maybe tweak one or two. For general editing we stream the data to and from a .CSV file. So in practice this horrible view will be okay.

              M L 2 Replies Last reply
              0
              • L Leif Simon Goodwin

                I agree. However, this is an application for engineers rather than general consumers, and this particular view displays configuration settings that will only be examined by two or three people who are based in our company (super users). The values are rather abstruse, and control fine details of a display device. Most of the time users will just examine the values, and maybe tweak one or two. For general editing we stream the data to and from a .CSV file. So in practice this horrible view will be okay.

                M Offline
                M Offline
                Mycroft Holmes
                wrote on last edited by
                #17

                Leif Simon Goodwin wrote:

                this is an application for engineers

                You don't like your engineers!!! Sorry but that is no excuse for a lousy design.

                Never underestimate the power of human stupidity RAH

                L 2 Replies Last reply
                0
                • L Leif Simon Goodwin

                  I agree. However, this is an application for engineers rather than general consumers, and this particular view displays configuration settings that will only be examined by two or three people who are based in our company (super users). The values are rather abstruse, and control fine details of a display device. Most of the time users will just examine the values, and maybe tweak one or two. For general editing we stream the data to and from a .CSV file. So in practice this horrible view will be okay.

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #18

                  I get the impression you don't "understand" the purpose of these "configuration settings"; and because there are "a lot of them", a "grid" should do the trick. Have you "talked" to the "engineers"? WPF has the ability to "expand" "details" of a selected row. One can have a list view of "grids"; etc. What's missing is a UI "visual" designer; who's familiar with WPF (or not at all) ... oh, and familiar with the problem domain.

                  "(I) am amazed to see myself here rather than there ... now rather than then". ― Blaise Pascal

                  L 1 Reply Last reply
                  0
                  • M Mycroft Holmes

                    Leif Simon Goodwin wrote:

                    this is an application for engineers

                    You don't like your engineers!!! Sorry but that is no excuse for a lousy design.

                    Never underestimate the power of human stupidity RAH

                    L Offline
                    L Offline
                    Leif Simon Goodwin
                    wrote on last edited by
                    #19

                    This is the design requested by the engineers including the technical director. It's the one they use in the current application (which the new one replaces).

                    1 Reply Last reply
                    0
                    • M Mycroft Holmes

                      Leif Simon Goodwin wrote:

                      this is an application for engineers

                      You don't like your engineers!!! Sorry but that is no excuse for a lousy design.

                      Never underestimate the power of human stupidity RAH

                      L Offline
                      L Offline
                      Leif Simon Goodwin
                      wrote on last edited by
                      #20

                      This is the design requested by the firmware engineers including the technical director, and does all that they need. They have the same layout in the current application, which the new one replaces.

                      P 1 Reply Last reply
                      0
                      • L Leif Simon Goodwin

                        This is the design requested by the firmware engineers including the technical director, and does all that they need. They have the same layout in the current application, which the new one replaces.

                        P Offline
                        P Offline
                        Pete OHanlon
                        wrote on last edited by
                        #21

                        Could you put up a mocked up screenshot so that we can get a better idea of what you're after?

                        This space for rent

                        L 2 Replies Last reply
                        0
                        • L Lost User

                          I get the impression you don't "understand" the purpose of these "configuration settings"; and because there are "a lot of them", a "grid" should do the trick. Have you "talked" to the "engineers"? WPF has the ability to "expand" "details" of a selected row. One can have a list view of "grids"; etc. What's missing is a UI "visual" designer; who's familiar with WPF (or not at all) ... oh, and familiar with the problem domain.

                          "(I) am amazed to see myself here rather than there ... now rather than then". ― Blaise Pascal

                          L Offline
                          L Offline
                          Leif Simon Goodwin
                          wrote on last edited by
                          #22

                          Are you always so completely obnoxious? :mad: You come across as a troll. Every single one of your posts is a put down. The suggestions you make are vague abstract comments (the kind that someone with no real knowledge could make), with no helpful content and nothing to indicate any actual technical knowledge on your part. Do you have anything constructive to say or is your goal simply to piss on me? Frankly I am getting pissed off with your obnoxious trolling. :mad: The layout was designed by the engineers. It's what they have asked for and what they want. They've seen the current prototype and like it. It's the same as in the previous application which has served them well.

                          L 1 Reply Last reply
                          0
                          • P Pete OHanlon

                            Could you put up a mocked up screenshot so that we can get a better idea of what you're after?

                            This space for rent

                            L Offline
                            L Offline
                            Leif Simon Goodwin
                            wrote on last edited by
                            #23

                            Probably not for reasons of commercial secrecy. What I am working on has NDA agreements in place. However, the current implementation now works well. We generate and compile the form code on the fly, and the form runs pretty quickly to provide a decent user experience. I am using the extended WPF toolkit DataGrid in place of the standard DataGrid which has solved the performance issues. From searching on the internet, it's clear that the performance of data grids is an issue for a lot of people, and I am sure many have their own custom implementations. I might be able to significantly reduce the memory footprint, and increase execution time but it would require significant development time which we do not have. We need to focus on the features that our customers will use, rather than gold plate something used from time to time by a couple of our own engineers.

                            1 Reply Last reply
                            0
                            • P Pete OHanlon

                              Could you put up a mocked up screenshot so that we can get a better idea of what you're after?

                              This space for rent

                              L Offline
                              L Offline
                              Leif Simon Goodwin
                              wrote on last edited by
                              #24

                              I accidentally marked your post as trolling. Apologies for the error, your posts are constructive. :sigh:

                              P 1 Reply Last reply
                              0
                              • L Leif Simon Goodwin

                                I accidentally marked your post as trolling. Apologies for the error, your posts are constructive. :sigh:

                                P Offline
                                P Offline
                                Pete OHanlon
                                wrote on last edited by
                                #25

                                Don't worry about it. I have the feeling you're going to have to drop back to dotTrace to trace the performance of what's going on.

                                This space for rent

                                1 Reply Last reply
                                0
                                • L Leif Simon Goodwin

                                  Are you always so completely obnoxious? :mad: You come across as a troll. Every single one of your posts is a put down. The suggestions you make are vague abstract comments (the kind that someone with no real knowledge could make), with no helpful content and nothing to indicate any actual technical knowledge on your part. Do you have anything constructive to say or is your goal simply to piss on me? Frankly I am getting pissed off with your obnoxious trolling. :mad: The layout was designed by the engineers. It's what they have asked for and what they want. They've seen the current prototype and like it. It's the same as in the previous application which has served them well.

                                  L Offline
                                  L Offline
                                  Lost User
                                  wrote on last edited by
                                  #26

                                  You talk in abstracts. You're looking for advice, but won't accept any in terms of being more clear about the "use case". Whatever the "layout" the engineers decided, it's only known to you apparently. It's simple: you don't understand "virtualization" and refuse to. (Later: I get it now why you were being so obtuse... it was because of the "NDA"; you should have made that clear from the beginning; then I wouldn't have bothered trying to help).

                                  "(I) am amazed to see myself here rather than there ... now rather than then". ― Blaise Pascal

                                  L 1 Reply Last reply
                                  0
                                  • L Lost User

                                    You talk in abstracts. You're looking for advice, but won't accept any in terms of being more clear about the "use case". Whatever the "layout" the engineers decided, it's only known to you apparently. It's simple: you don't understand "virtualization" and refuse to. (Later: I get it now why you were being so obtuse... it was because of the "NDA"; you should have made that clear from the beginning; then I wouldn't have bothered trying to help).

                                    "(I) am amazed to see myself here rather than there ... now rather than then". ― Blaise Pascal

                                    L Offline
                                    L Offline
                                    Leif Simon Goodwin
                                    wrote on last edited by
                                    #27

                                    Get lost. :mad:

                                    1 Reply Last reply
                                    0
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    • Login

                                    • Don't have an account? Register

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • World
                                    • Users
                                    • Groups