private void RadTreeListView_Filtering(object sender, Telerik.Windows.Controls.GridView.GridViewFilteringEventArgs e)
{
var treeListView = sender as RadTreeListView;
var internalColumns = treeListView.GetType().GetProperty("InternalColumns", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(treeListView);
internalColumns.GetType().GetProperty("ColumnWidthsCalculationPending", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(internalColumns, true);
}
private void RadTreeListView_Filtered(object sender, Telerik.Windows.Controls.GridView.GridViewFilteredEventArgs e)
{
Dispatcher.BeginInvoke(new Action(() =>
{
var treeListView = sender as RadTreeListView;
var internalColumns = treeListView.GetType().GetProperty("InternalColumns", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(treeListView);
internalColumns.GetType().GetProperty("ColumnWidthsCalculationPending", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(internalColumns, false);
}), System.Windows.Threading.DispatcherPriority.Loaded);
}
If you press Ctrl+Up/Down to change the selection and currency in TreeListView, the CurrentCellChanged event is fired. However, the e.NewCell property of the event arguments is null.
To get the new cell, use the CurrentCellInfo property of RadTreeListView.
private void RadTreeListView_CurrentCellChanged(object sender, GridViewCurrentCellChangedEventArgs e)
{
var treeListView = (RadTreeListView)sender;
GridViewCellInfo currentCell = treeListView.CurrentCellInfo;
}
An exception is thrown when you try to update the items source of RadTreeListView in an async method.
The following error is observed.
InvalidOperationException: The calling thread cannot access this object because a different thread owns it
To work this around ensure that only the main UI thread updates the item source.
Per the thread at "http://www.telerik.com/forums/isexpandablebinding-requires-user-interaction-with-control-to-take-effect" I have modified the IsExpandedRowBinding sample to recreate the problem. I modified the button to expand and collapse the first row. To reproduce the problem: 1. Expand the first row. 2. Scroll down so the first row is not visible but it's children are visible. 3. Press the button. The expected behavior is the first row should collapse but nothing happens. 4. Scroll up so the first row is visible. The first row collapses.
The selected rows of TreeListView are not returned when calling SelectionPattern.GetSelection method.
The problem can be reproduced with RadGridView as well.
I found a bug when use MergeCells in grid view and tree list view, I am the license account, my support is out of date,But I still want to feadback the bug to you , I make a vedio in attachment
When use in radtreelistview , I can not explict set the MergedCellsStyle, maybe MergedCellsStyleSelector also have the bug.I just try MergedCellsStyle.
The JAWS screen reader cannot read the RadTreeListView and also its rows and cells.
This reproduces after the 2019.3.917 release.
To work this around create a custom RadTreeListViewAutomationPeer:
public class CustomTreeListView : RadTreeListView
{
protected override AutomationPeer OnCreateAutomationPeer()
{
return new CustomTreeListViewAutomationPeer(this);
}
}
public class CustomTreeListViewAutomationPeer : RadTreeListViewAutomationPeer
{
public CustomTreeListViewAutomationPeer(RadTreeListView owner)
: base(owner)
{
var methodInfo = typeof(RadTreeListViewAutomationPeer).GetMethod("GetItemPeers", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
methodInfo.Invoke(this, null);
}
protected override List<AutomationPeer> GetChildrenCore()
{
var frameworkPeer = new FrameworkElementAutomationPeer((FrameworkElement)this.Owner);
return frameworkPeer.GetChildren();
}
}