title | description | type | page_title | slug | tags | res_type |
---|---|---|---|---|---|---|
Accessing the NumericInput Inner Entry in .NET MAUI with Telerik UI |
Learn how to access the RadTextInput inner entry in RadNumericInput when using Telerik MAUI version 8.0.0 or above. |
how-to |
How to Access RadTextInput Inner Entry in Telerik MAUI NumericInput |
access-radtextinput-inner-entry-telerik-maui-numericinput |
maui, numericinput, radtextinput, .net9, telerik, inner entry, handler |
kb |
Version | Product | Author |
---|---|---|
10.0.0 | Telerik UI for .NET MAUI NumericInput | Dobrinka Yordanova |
When migrating an app from .NET8 to .NET9 and updating the Telerik Version from 7.1.0 to 8.0.0 (or the latest 10.0.0), the RadMauiEntry
is no longer available, and the way to access the entry handler has changed.
This knowledge base article also answers the following questions:
- How can I access the inner entry of a
NumericInput
in Telerik MAUI? - What replaces
RadMauiEntry
in Telerik MAUI version 8.0.0 and above? - How do I subscribe to the handler changes of the
RadTextInput
used inNumericInput
?
To access the inner entry of a RadNumericInput
when using Telerik MAUI version 8.0.0 or above, use the RadTextInput
control that replaces the RadMauiEntry
. Follow these steps to access and manipulate the inner entry:
1. Define the RadNumericInput
in your XAML with the Loaded
event:
<telerik:RadNumericInput x:Name="numeric" Loaded="OnRadNumericInputLoaded"/>
2. In the code-behind, subscribe to the RadTextInput.HandlerChanged
event to access the native element:
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void OnRadNumericInputLoaded(object sender, EventArgs e)
{
var textInput = ChildOfType<RadTextInput>(this.numeric);
if (textInput != null)
{
var handler = textInput.Handler;
if (handler == null)
{
textInput.HandlerChanged += this.OnTextInputHandlerChanged;
}
else
{
this.UpdateNativeElement(handler);
}
}
}
internal static T ChildOfType<T>(View visualElement) where T : View
{
if (visualElement == null)
{
return null;
}
foreach (var item in VisualTreeElementExtensions.GetVisualTreeDescendants(visualElement))
{
if (item is T targetElement)
{
return targetElement;
}
}
return null;
}
private void OnTextInputHandlerChanged(object sender, EventArgs e)
{
var textInput = (RadTextInput)sender;
this.UpdateNativeElement(textInput.Handler);
textInput.HandlerChanged -= this.OnTextInputHandlerChanged;
}
private void UpdateNativeElement(IViewHandler handler)
{
var nativeEntry = handler.PlatformView as Telerik.Maui.Platform.RadMauiTextInput;
if (nativeEntry != null)
{
// Add your logic here
}
}
}
Replace // Add your logic here
with your specific logic for manipulating the native entry.