I am trying to implemented a filter row to the Eto.Forms.TreeGridView we are using and I wonder if someone would have a sugesstion on how we could get a control like for example DB Broswer for SQLite is using.
How could someone get this kind of control? Using WPF we included the filter textbox into the header, but using Eto - really no clue on how to do that.
I could also think of putting the filter in top of the column headers, maybe using an additional Grid or StackLayout that resizes when a ColumnWidthChanged event or something is firing. Is there an event that fires when the column header width was changed by a user?
I would also need this to be working - as I want to store the column width so the user doesn’t need to rearrange each column when reopening the TreeGridView. Is this supposed to work in Rhino 8 or would you have time to implement this a bit earlier?
Just reading through the RH-68493. Did you already implemented the improvement? Is this available in Rhino WIP or will this be included in the next Rhino 7 release?
Hey @Christian_Hartz, yes, this is available in 7.20 or later (the current service release candidate), so you should be able to give it a try. Sorry, usually we link the issue to the discourse post so it gets automatically notified but I forgot to do that with this one.
I would like to change the filter row to the top of the TreeGridView by adding a StackLayout with as many TextBoxes as columns in the TreeGridView. To adjust the StackLayout I would need to listen to a horizontal scroll event or how would you @curtisw implement something like this?
A short video of the problem I am having right now.
So - I think I am a step further, but now: How do I get rid of the scrollbar in the Scrollable? And its Windows only - @Curtis, maybe you have a pure Eto solution for that. Would be great.
Alright - found a solution in the Windows OS implementation:
#if ISWIN
if (_scrollableFilterStackLayout.ControlObject is Eto.Wpf.Forms.EtoBorder border &&
border.Child is System.Windows.Controls.ScrollViewer _scrollViewer)
{
_scrollViewer.HorizontalScrollBarVisibility = System.Windows.Controls.ScrollBarVisibility.Hidden;
_scrollViewer.VerticalScrollBarVisibility = System.Windows.Controls.ScrollBarVisibility.Hidden;
}
#elif ISMAC
// How does this look like on Mac OS????
#endif
Is it possible to set this via a style property of the Scrollable?
Eto.Style.Add<Eto.Wpf.Forms.Controls.ScrollableHandler>("AFScrollableFilterStyle", h =>
{
???
});