Reference to native controls

Sometimes you need a reference to the native control (i.e. Xamarin Forms widget); for example, say you need to focus a control when component starts up, or need a reference to the page in order to call the DisplayAlart API to show a modal message box to the user.

In ReactorUI you can get a reference to the underling widget passing an Action argument when constructing the visual object.

For example in this code when a button is clicked an alert is displayed to user:

public class MainPage : RxComponent
{
    private Page _pageRef;

    public override VisualNode Render()
    {
        return new RxContentPage(pageRef => _pageRef = pageRef)
        {
            new RxButton("Click here!")
                .OnClick(OnButtonClicked)
                .VCenter()
                .HCenter()
        };
    }

    private async void OnButtonClicked()
        => await _pageRef.DisplayAlert("Sample Page", "Hello!", "Close");
}

NOTE: You can more easily access page containing the component using the property ContainerPage

Last updated