> For the complete documentation index, see [llms.txt](https://adospace.gitbook.io/reactorui/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://adospace.gitbook.io/reactorui/guide/components-with-a-state/reference-to-native-controls.md).

# 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.&#x20;

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

```csharp
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");
}
```

![Component reference sample](/files/-M3z45VVLWxA1Gj5wnyS)

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