Skip to content

ReactivePage class

Attributes: [WinRTRuntimeClassName] [WinRTExposedType]

Defined in

Namespace: ReactiveUI Assembly: ReactiveUI.WinUI.dll Full name: ReactiveUI.ReactivePage<T> Modifiers: public

Summary

View source

A Page that is reactive.

Applies to

net10.0-windows10.0.19041, net10.0-windows10.0.19041, net9.0-windows10.0.19041, net9.0-windows10.0.19041, net8.0-windows10.0.19041, net462, net481

Class hierarchy
classDiagram
class ReactivePage~T~
class Page
Page <|-- ReactivePage~T~
class IViewFor~TViewModel~ {
    <>
}
IViewFor~TViewModel~ <|.. ReactivePage~T~
class IViewFor {
    <>
}
IViewFor <|.. ReactivePage~T~
class IActivatableView {
    <>
}
IActivatableView <|.. ReactivePage~T~

Inherits from: Page

Implements: IViewFor, IViewFor, IActivatableView

Remarks

This class is a Page that is also reactive. That is, it implements IViewFor. You can extend this class to get an implementation of IViewFor rather than writing one yourself.

Note that the XAML for your control must specify the same base class, including the generic argument you provide for your view model. To do this, use the TypeArguments attribute as follows:

<![CDATA[
 <rxui:ReactivePage
 x:Class="Foo.Bar.Views.YourView"
 x:TypeArguments="vms:YourViewModel"
 xmlns:rxui="http://reactiveui.net"
 xmlns:vms="clr-namespace:Foo.Bar.ViewModels"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 mc:Ignorable="d">
 <!-- view XAML here -->
 </rxui:ReactivePage>
 ]]>

Note that UWP and WinUI projects do not support the TypeArguments attribute. The XAML designer window in WPF projects also does not support generic types. To use ReactivePage in XAML documents you need to create a base class where you derive from ReactivePage with the type argument filled in.

<![CDATA[
 internal class YourViewBase : ReactivePage<YourViewModel> { /* No code needed here */ }
 
 public partial class YourView : YourViewBase
 {
 /* Your code */
 }
 ]]>

Then you can use this base class as root in your XAML document.

<![CDATA[
 <views:YourViewBase
 x:Class="Foo.Bar.Views.YourView"
 xmlns:rxui="http://reactiveui.net"
 xmlns:vms="clr-namespace:Foo.Bar.ViewModels"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 mc:Ignorable="d">
 <!-- view XAML here -->
 </views:YourViewBase>
 ]]>

Constructors

NameSummary
.ctor

Properties

NameSummary
BindingRootGets the binding root view model.
ViewModelGets or sets the strongly typed view model. Override this property to integrate with the platform's binding system.

Fields

NameSummary
static ViewModelPropertyThe view model dependency property.
Inherited members