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;
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 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>
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
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
Hi,
while integrating a RadAutoCompleteBox into our application, I noticed a problem when binding to its SearchText and SelectedItem properties:
How we use the AutoCompleteBox:
We use the following XAML markup to create the AutoCompleteBox:
<telerik:RadAutoCompleteBox Grid.Column="0" x:Name="UnitSelectionAutoCompleteBox"
AutoCompleteMode="SuggestAppend"
DisplayMemberPath="UnitNumber"
IsEnabled="{Binding UnitNumberEnabled, Mode=OneWay}"
ItemsSource="{Binding UnitSelectionComponent.SearchResults, Mode=OneWay}"
SearchText="{Binding UnitSelectionComponent.UnitNumberSearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding UnitSelectionComponent.SelectedUnit, Mode=TwoWay}"
SelectionMode="Single"
TextSearchMode="Contains"
TextSearchPath="UnitNumber"
WatermarkContent="{StaticResource Loc.UnitNumber}">
</telerik:RadAutoCompleteBox>
Having bound both, the SelectedItem and the SearchText leads to the SearchText binding to break under some circumstances: If UnitSelectionComponent.SelectedUnit is not null when the UI is loaded initially, the SearchText property suddenly contains a hard-coded string instead of the binding we defined. However, there seems to be another required condition I don't know yet since I was not able to reproduce the problem in a simple demo project.
I attached three screenshots of our ui and Snoop:
- binding_working shows the control and its SearchText binding in the default state.
- binding_working2 shows the control and its SearchText binding after selecting an item by first typing into the AutoCompleteBox and then selecting an item from the dropdown.
- binding_broken shows the control and its SearchText binding in the broken state: Instead of the binding, SearchText now only contains a string.
- The issue occurs in two cases:
1. If I open the module with a preselected item (e.g. by opening a saved document),
2. If I use a separate selection module to select an item (the selection module is displayed by temprarily switching the DataContext to show the selection UI. When a new item is selected, we set the SelectedUnit and then the DataContext is switched back to show the module ui again, see RadAutoCompleteBox_LostBinding.gif)
- If the SelectedItem is not bound, the issue does not seem to occur.
- Forcing the ui to be reloaded (e.g. by switching to a different module and then back) makes the binding come back.
Regards
Simon Müller
Hofmann Fördertechnik GmbH
If you have RadAutoCompleteBox above RadPanelBarItems and the expanded drop down menu (of the RadAutoCompleteBox) covers them, if you click over some of the drop down items the RadPanelBarItem below gets clicked too. The fix is available in Q2 2013 Release.
Available in LIB version 2017.1.213 , it will be also available in the R1 2017 SP1 Release.
Clicking the ScrollViewer of the control causes the focus to be retained by the RadAutoCompleteBox, leading to double mouse click required in order to access outside control. Also the mouse cursor is changed IBeam value rather than the default Arrow value. The fix is available in the 2016 R3 SP1 release.
Available in LIB version 2016.3.1017, it will be also available in the 2016 R3 SP1 release.
When the SelectedItems property is bound, moving items inside that collection causes ArgumentException. Available in LIB version 2016.3.1017, it will be also available in the 2016 R3 SP1 release.
On start up a Binding error is thrown in the Output for ElementName=WatermarkTextBox. Available in LIB version 2016.3.1017, it will be also available in the 2016 R3 SP1 release.
When the Populate method is called from the control's GotFocus or PreviewMouseLeftButtonDown events, moving the parent Window does not close it's DropDown. Available in LIB Version 2016.3.1010, it will be also available in the 2016 R3 SP1.
Should be clicked somewhere else afterwards in order to refresh the cursor. The fix is available in R2 2016 SP1.