One of the following two exceptions occur when the BindingOperations.EnableCollectionSynchronization() is used with the ItemsSource of RadTreeListView:
When using the EnableCollectionSynchronization, the corresponding items control should allow updates of the ItemsSource collection on different threads. This is valid if the requirements to use the EnableCollectionSynchronization method are met.
The exception stack traces are:
InvalidOperationException
at System.ThrowHelper.ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() in /_/src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs:line 432
at System.Collections.Generic.List`1.Enumerator.MoveNext() in /_/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/List.cs:line 1130
at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
at Telerik.Windows.Data.EnumerableExtensions.<SelectRecursive>d__15`1.MoveNext()
at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
at Telerik.Windows.Data.HierarchicalCollectionViewBase.PopulateInternalList(IQueryable view)
at Telerik.Windows.Data.QueryableCollectionView.get_InternalList()
at Telerik.Windows.Data.HierarchicalCollectionViewBase.get_InternalCount()
at Telerik.Windows.Data.DataItemCollection.get_Item(Int32 index)
at Telerik.Windows.Controls.GridView.Rows.GetRowItemsAtRange(Int32 startIndex, Int32 endIndex)
at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.FlatLayoutStrategy.RealizeRows(Int32 startIndex, Int32 endIndex, Double& verticalOffset, HashSet`1& realizedRows)
at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.FlatLayoutStrategy.MeasureOverride(Size availableSize)
at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.MeasureOverride(Size availableSize)NullReferenceException at Telerik.Windows.Data.QueryableCollectionView.InternalGetItemAt(Int32 index) in Telerik.Windows.Data\QueryableCollectionView.cs:line 3081 at Telerik.Windows.Controls.GridView.Rows.GetRowItemsAtRange(Int32 startIndex, Int32 endIndex) at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.FlatLayoutStrategy.RealizeRows(Int32 startIndex, Int32 endIndex, Double& verticalOffset, HashSet`1& realizedRows) at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.FlatLayoutStrategy.MeasureOverride(Size availableSize) at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.MeasureOverride(Size availableSize)
To work this around dispatch the updates of the ItemsSource collection to the main UI thread.
Dispatcher.BeginInvoke(new Action(() =>
{
// add/remove items from the source collection
}));Pasting an invalid range of dates in the RadDateRangePicker, for example, "ABC", raises an exception.
To work around this behavior, you could subscribe to the Loaded event of RadDateRangePicker and retrieve the DateRangeMaskedInput element via the visual tree helper methods. Then, subscribe to its ValueChanging event and check whether the NewValue property of the event arguments contains any letters or characters that are not valid. If it does, set the Handled property to True.
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.dateRangePicker.Loaded += DateRangePicker_Loaded;
}
private void DateRangePicker_Loaded(object sender, RoutedEventArgs e)
{
DateRangeMaskedInput dateRangeMaskedInput = this.dateRangePicker.FindChildByType<DateRangeMaskedInput>();
if (dateRangeMaskedInput != null)
{
dateRangeMaskedInput.ValueChanging += DateRangeMaskedInput_ValueChanging;
}
}
private void DateRangeMaskedInput_ValueChanging(object? sender, Telerik.Windows.Controls.MaskedInput.RadMaskedInputValueChangingEventArgs e)
{
if (e.NewValue.ToString().Any(char.IsLetter))
{
e.Handled = true;
}
}
}
RichTextBox: Bullet list with several levels is not viewed correctly in WordPad.
In Word, this works as expected. When the document is imported into RadRichTextBox, this works as well.
Bold/Italic does not work for some font styles.
This might be a framework limitation in WPF: https://www.telerik.com/forums/some-fonts-are-not-able-to-bold-italic
Sample fonts list:
Currently, the RadFileDialogs components show folder shortcuts, however, they are not fully supported. More specifically, interacting with them, such as mouse-double click, does not navigate to the respective folder.
In the meantime, this behavior can be achieved by subscribing to the Loaded event of the used file dialog type, in order to retrieve and cache the ExplorerControl in a field or a property. Then, you could subscribe to the PreviewMouseDoubleClick event of the used file dialog type and check whether the DataContext of the e.OriginalSource property is of the type of FileInfoWrapper. If it is and its IsShortcut property is true, set the CurrentDirectoryPath property of the cached ExplorerControl to the ShortcutLocation property of the FileInfoWrapper object.
The following code snippets showcase this approach when using the RadSaveFileDialog type:
//Caching the ExplorerControl instance
private ExplorerControl explorerControl;
//Retrieving the ExplorerControl instance
private void SaveFileDialog_Loaded(object sender, RoutedEventArgs e)
{
RadSaveFileDialog radSaveFileDialog = (RadSaveFileDialog)sender;
ExplorerControl explorerControl = radSaveFileDialog.ChildrenOfType<ExplorerControl>().FirstOrDefault();
if (explorerControl != null)
{
this.explorerControl = explorerControl;
}
}//Navigation logic on double click of a shortcut
private void SaveFileDialog_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
FrameworkElement frameworkElement = e.OriginalSource as FrameworkElement;
if (frameworkElement != null)
{
FileInfoWrapper fileInfoWrapper = frameworkElement.DataContext as FileInfoWrapper;
if (fileInfoWrapper != null)
{
if (fileInfoWrapper.IsShortcut)
{
RadSaveFileDialog radSaveFileDialog = (RadSaveFileDialog)sender;
this.explorerControl.CurrentDirectoryPath = fileInfoWrapper.ShortcutLocation;
e.Handled = true;
}
}
}
}
Hi Team,
I have set up SSO and it's great so far. I have a feature request that would make it even better, and solve many large enterprise needs, is to have a way to integrate SCIM based license provisioning as well.
Right now, you still do need to manage licensed users on the Manage Licensed Users portal. A License Holder or License Manager needs to add a Developer to the account and assign them a license.
With SCIM integration, we could better manage the users and licensing on a larger scale, with automation and oversight on the enterprise-managed SSO identity.
Thank you,
Kevin
I do have some feedback on this component. I love it, but of course there are some areas where improvement can be made. For instance, in the screenshot below, I have highlighted some words where improvement can be made.