Hi,
unfortunately, I have yet another bug report regarding the RadAutoCompleteBox. This time, it looks like a regression introduced in one of the last two Releases of Ui for WPF as we recently upgraded from 2021.3.914.45 to 2022.1.117.45 and the crash only happens with the newer version.
In one of our applications we get an InvalidOperationException: "Cannot modify the logical children for this node at this time because a tree walk is in progress." when setting RadPane.Hidden = true for a Pane that contains at least one RadAutoCompleteBox.
In the attached text file you can find the full stack trace. I noticed that RadPaneGroup inherits from RadTabControl so maybe the regression was caused by some of the changes in my other report regarding AutoCompleteBoxes in TabControls. The pattern seems to be the same at least: The crash only seems to occur if you type into the AutoCompleteBox and select an item from the DropDown.
Crash occurs if:
Crash does not occur if:
As a side note:
While debugging the issue I noticed that RadNavigationView seems to have an exception handler somewhere that silently swallows this exception, causing really strange behavior in the RadDocking control. I also attached a gif for this behavior (-UI.gif).
Telerik.Windows.Controls.Navigation.dll!Telerik.Windows.Controls.RadNavigationView.OnSelectionChangerSelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e = {System.Windows.Controls.SelectionChangedEventArgs}) Unknown
Telerik.Windows.Controls.dll!Telerik.Windows.Controls.SelectionChanger<System.__Canon>.InvokeSelectionChangedEvent(System.Windows.Controls.SelectionChangedEventArgs e) Unknown
Telerik.Windows.Controls.dll!Telerik.Windows.Controls.SelectionChanger<System.__Canon>.End() Unknown
Telerik.Windows.Controls.dll!Telerik.Windows.Controls.SelectionChanger<object>.AddJustThis(object item) Unknown
> Telerik.Windows.Controls.Navigation.dll!Telerik.Windows.Controls.RadNavigationView.UpdateSelection(System.Windows.Controls.Primitives.Selector targetSelector, object item) Unknown
Telerik.Windows.Controls.Navigation.dll!Telerik.Windows.Controls.RadNavigationView.NotifyNavigationViewItemClick(Telerik.Windows.Controls.RadNavigationViewItem container) Unknown
Telerik.Windows.Controls.Navigation.dll!Telerik.Windows.Controls.RadNavigationViewItem.OnClickInternal() Unknown
Telerik.Windows.Controls.Navigation.dll!Telerik.Windows.Controls.RadNavigationViewItem.OnClick() Unknown
PresentationFramework.dll!System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs e) Unknown
Regards
Simon Müller
Hofmann Fördertechnik GmbH
I've encountered a tiny bug when it comes to styling AutoCompleteBox using StyleManager.
If I set the StyleManager.ApplicationTheme of my app, the styling is correct, see the reference gif:
But if I set the style of AutoCompleteBox during runtime with StyleManager.SetTheme, the styling is not quite right - the underlying RadWatermarkBox is using the basic style I believe, because the text doesn't change it opacity when I hover over it (in the case of watermark text) or when I defocus the element (in the case of real text).
The example I'm using is just an empty WPF project with MainWindow.xaml having one RadAutoCompleteBox inside it, and MainWindow.xaml.cs is pictured in the gifs.
Best Regards,
Mateusz
When using Windows 11 theme with 4.5 NoXaml binaries, AutoCompleteBox reports a XAML Binding Failure:
To reproduce, just run the following window (just an empty AutoCompleteBox) in a new WPF Framework project:
<Window x:Class="WpfApp20.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp20" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Telerik.Windows.Themes.Windows11;component/Themes/System.Windows.xaml"/>
<ResourceDictionary Source="/Telerik.Windows.Themes.Windows11;component/Themes/Telerik.Windows.Controls.xaml"/>
<ResourceDictionary Source="/Telerik.Windows.Themes.Windows11;component/Themes/Telerik.Windows.Controls.Input.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<telerik:RadAutoCompleteBox/>
</Grid>
</Window>
As a workaround the Foreground property of the AutoCompleteBox can be set to Black.
By default the TextSearchPath of RadAutoCompleteBox is automatically assigned when the DisplayMemberPath is set, and if the TextSearchPath is not yet assigned. However, this happens only initially. Runtime changes of the DisplayMemberPath don't update the text search path.
To work this around, set the TextSearchPath manually when you change the DisplayMemberPath.
When the SelectionMode of RadAutoCompleteBox is changed, the search text is cleared. However, this clears only the Text property of the underlying TextBox element. The SearchText property of the control is not cleared.
To work this around, you can manually set the SearchText after setting the SelectionMode.this.autoCompleteBox.SelectionMode = AutoCompleteSelectionMode.Multiple;
this.autoCompleteBox.SearchText = null;