ReactivePage class¶
Attributes: [WinRTRuntimeClassName] [WinRTExposedType]
Defined in
Namespace: ReactiveUI
Assembly: ReactiveUI.WinUI.dll
Full name: ReactiveUI.ReactivePage<T>
Modifiers: public
Summary¶
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
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¶
| Name | Summary |
|---|---|
| .ctor |
Properties¶
| Name | Summary |
|---|---|
| BindingRoot | Gets the binding root view model. |
| ViewModel | Gets or sets the strongly typed view model. Override this property to integrate with the platform's binding system. |
Fields¶
| Name | Summary |
|---|---|
| static ViewModelProperty | The view model dependency property. |