Home Forums WPF controls Xceed DataGrid for WPF Odd Scrolling

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • User (Old forums)
    Member
    Post count: 23064
    #24214 |

    How can we have the vertical scrolling stop when you get to the bottom of the list? In the Xceed example apps when you get to the end of the list you can keep scrolling until you can only see one item in the grid! We would rather it not do that.

    The other problem (related) is that when you call BringItemIntoView, in some cases, the grid only shows one item in the grid instead of showing as much data in the grid as possible. This makes it look to a common user that there is only one item in the grid and all their data went poof.

    Thanks!

    Imported from legacy forums. Posted by Mark (had 2263 views)

    Xceed Support
    Member
    Post count: 5658

    This is normal behavior due to virtualization. The only way to disable it would be to display virtualization by changing the grid’s ItemPanel to a non-virtualizing one. For example:

    <code>
    <xcdg:DataGridControl.ItemsPanel>
    <ItemsPanelTemplate>
    <StackPanel/>
    </ItemsPanelTemplate>
    </xcdg:DataGridControl.ItemsPanel>
    </code>

    Imported from legacy forums. Posted by Jenny [Xceed] (had 797 views)

    Xceed Support
    Member
    Post count: 5658

    Forgot to mention that if you disable virtualization and you have alot of data in the grid, you will encounter a performance hit.

    Imported from legacy forums. Posted by Jenny [Xceed] (had 537 views)

    User (Old forums)
    Member
    Post count: 23064

    Yeah, we want to keep the virtualizing panel. We’ve worked around the problem by handling ScrollChanged (which itself tricky because we have code that recreates the scroll view periodically). In ScrollChanged we can detect that BringItemIntoView has been called and has put the current item at the top, so we programmatically reset the scrollviewer’s VerticalOffset to scroll down a bit to make it look better.

    Imported from legacy forums. Posted by Mark (had 1182 views)

    Xceed Support
    Member
    Post count: 5658

    An alternative would be present, but only if you can live with fixed row height.

    It’s not an easy one, but you could create your own DataGridVirtualizingPanel that works with the assumption that Rows have a “fixed” height (therefore, layout is predictable). This assumption being present, you always know how many items fit in a “page”…

    Imported from legacy forums. Posted by Marcus [Xceed] (had 4176 views)

    User (Old forums)
    Member
    Post count: 23064

    “This assumption being present, you always know how many items fit in a “page”…”

    But surely, if the grid knows it is at the last row (and you know how tall it is), you shouldn’t need to scroll any further, and hence leave it at the bottom of the its parent container, rather than scrolling it to the top.

    For example, scrolling by dragging the scrollbar works as expected, only clicking the downarrow or scrolling with mouse roller button scrolls the grid undesirably, hence I think it shouldn’t really be too hard for the grid to be fixed?

     

    Is this a MS ‘by design’ or an XCeed ‘by design’?

    We’re really enjoying working with the pro grid, but it’d be much more professional if this can be worked around without turning off virtualization.

    Imported from legacy forums. Posted by DarrenK (had 3689 views)

    User (Old forums)
    Member
    Post count: 23064

    I put int he itemspaneltemplate, but I still got the odd scrolling behavior. I’m running the Pro version of Xceed 3.0, any suggestions?

    Imported from legacy forums. Posted by Joseph (had 1477 views)

    Xceed Support
    Member
    Post count: 5658

    The workaround that Marcus provided is just that: a workaround. Unfortunately, this is a shortcoming of the grid that we understand is annoying and may cause issues for some clients, but we are  working on it and will hopefully have a resolution in an upcoming release.

    Imported from legacy forums. Posted by Jenny [Xceed] (had 532 views)

    User (Old forums)
    Member
    Post count: 23064

    Unfourtantly this is a make it or break it feature. I have to have a grid that autoscrolls to the bottom in a smooth fashion as hundreds of new rows are fed in through an observable collection.

     The scrolling behavior seems to be a bug though. I have changed nothing in my code and one day during testing scrolling/populating to the bottom was smooth, at night it was clearing the screen of rows before poulating new rows of information that couldn’t fit in the viewport, cuasing a weird clear/populating paging effect, then next day it was smooth again, and broken again this morning, with no code change.

    Imported from legacy forums. Posted by Joseph (had 918 views)

    Xceed Support
    Member
    Post count: 5658

    I have created a ticket for this issue and a developer will look into it as soon as possible. Thank you for your patience.

    Imported from legacy forums. Posted by Jenny [Xceed] (had 560 views)

    User (Old forums)
    Member
    Post count: 23064

    Thanks jenny.

    Imported from legacy forums. Posted by Joseph (had 1686 views)

    User (Old forums)
    Member
    Post count: 23064

    Are there any news about this problem? we also suffer from this problem.

    Thanks. 

    Imported from legacy forums. Posted by Or (had 1162 views)

    Diane [Xceed]
    Moderator
    Post count: 1353

    Hi Or,

    We are currently unable to completely solve this issue with TableView. However I ran a few tests and depending on the amount of rows in my grid I would either not have any blank space or just 1-2 rows worth, so at least it shouldn’t be as bad as it used to be.

    A possible alternative would be to use the TableflowView, as I could not reproduce that problem when using it.

     

    Imported from legacy forums. Posted by Diane [Xceed] (had 952 views)

    User (Old forums)
    Member
    Post count: 23064

    Hi Diane,
    The TableflowView works very nice and smooth!
    Unfortunately, we need to display rows with different height – which I understand that isn’t possible in the tableflow view.
    I care less about the blank 1-2 rows space, but more about the whole height and scrolling of the grid when the user clicks on the scroll itself.

    Is there any other solution? this is very important for us.

    Thanks,
    Or. 

     

    Imported from legacy forums. Posted by Or (had 594 views)

    Diane [Xceed]
    Moderator
    Post count: 1353

    Hi Or,

    Unfortunately, modifying the ContainerHeight property is currently the only way to change the height of the rows in TableflowView.

    Reference:
    http://doc.xceedsoft.com/products/XceedWpfDataGrid/Xceed.Wpf.DataGrid~Xceed.Wpf.DataGrid.Views.TableflowView~ContainerHeight.html

     

    Imported from legacy forums. Posted by Diane [Xceed] (had 909 views)

Viewing 15 posts - 1 through 15 (of 16 total)
  • You must be logged in to reply to this topic.