MasterDetailPage Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Caution
MasterDetailPage is obsolete as of version 5.0.0. Please use FlyoutPage instead.
A Page that manages two panes of information: A master page that presents data at a high level, and a detail page that displays low-level details about information in the master.
[Xamarin.Forms.RenderWith(typeof(Xamarin.Forms.Platform._MasterDetailPageRenderer))]
[System.Obsolete("MasterDetailPage is obsolete as of version 5.0.0. Please use FlyoutPage instead.")]
public class MasterDetailPage : Xamarin.Forms.FlyoutPage, Xamarin.Forms.IMasterDetailPageController
type MasterDetailPage = class
inherit FlyoutPage
interface IMasterDetailPageController
interface IFlyoutPageController
- Inheritance
-
System.ObjectMasterDetailPage
- Attributes
-
RenderWithAttribute System.ObsoleteAttribute
- Implements
Remarks
Developers should only use FlyoutPages as the application root page.
The following example code, taken from the FormsGallery sample application, creates a MasterDetailPage that allows the user to view detailed information about a color that she chooses from a list. Note that the NamedColorPage
class, defined in as a sublcass of ContentPage in another file in the sample application, simply displays RGB data, a BoxView with its background color set to the color that the user selected, and, finally, hue, saturation, and luminosity data.
The sample below illustrates three key concepts. First, the "Master" portion of the MasterDetailPage is represented by the Master property, which is set to a ListView element in this example. This ListView element contains a label and a list of colors. Second, the "Detail" portion of the MasterDetailPage is represented by the Detail property, which, in this example, is set to the NamedColorPage
that was noted above. Third, and finally, the page that is represented by the Detail property is displayed by setting the IsPresented property to false
; That is, the IsPresented property controls whether or not the page that is represented by the Master is presented to the user.
using System;
using Xamarin.Forms;
namespace FormsGallery
{
class MasterDetailPageDemoPage : MasterDetailPage
{
public MasterDetailPageDemoPage()
{
Label header = new Label
{
Text = "MasterDetailPage",
FontSize = Device.GetNamedSize (NamedSize.Large, typeof(Label)),
HorizontalOptions = LayoutOptions.Center
};
// Assemble an array of NamedColor objects.
NamedColor[] namedColors =
{
new NamedColor("Aqua", Color.Aqua),
new NamedColor("Black", Color.Black),
new NamedColor("Blue", Color.Blue),
new NamedColor("Fuchsia", Color.Fuchsia),
new NamedColor("Gray", Color.Gray),
new NamedColor("Green", Color.Green),
new NamedColor("Lime", Color.Lime),
new NamedColor("Maroon", Color.Maroon),
new NamedColor("Navy", Color.Navy),
new NamedColor("Olive", Color.Olive),
new NamedColor("Purple", Color.Purple),
new NamedColor("Red", Color.Red),
new NamedColor("Silver", Color.Silver),
new NamedColor("Teal", Color.Teal),
new NamedColor("White", Color.White),
new NamedColor("Yellow", Color.Yellow)
};
// Create ListView for the master page.
ListView listView = new ListView
{
ItemsSource = namedColors
};
// Create the master page with the ListView.
this.Master = new ContentPage
{
Title = header.Text,
Content = new StackLayout
{
Children =
{
header,
listView
}
}
};
// Create the detail page using NamedColorPage and wrap it in a
// navigation page to provide a NavigationBar and Toggle button
this.Detail = new NavigationPage(new NamedColorPage(true));
// For Windows Phone, provide a way to get back to the master page.
if (Device.OS == TargetPlatform.WinPhone)
{
(this.Detail as ContentPage).Content.GestureRecognizers.Add(
new TapGestureRecognizer((view) =>
{
this.IsPresented = true;
}));
}
// Define a selected handler for the ListView.
listView.ItemSelected += (sender, args) =>
{
// Set the BindingContext of the detail page.
this.Detail.BindingContext = args.SelectedItem;
// Show the detail page.
this.IsPresented = false;
};
// Initialize the ListView selection.
listView.SelectedItem = namedColors[0];
}
}
}
Constructors
MasterDetailPage() |
Creates a new empty MasterDetailPage. |
Fields
ActionSheetSignalName |
This method is for internal use. (Inherited from Page) |
AlertSignalName |
This method is for internal use. (Inherited from Page) |
BusySetSignalName |
This method is for internal use. (Inherited from Page) |
MasterBehaviorProperty |
Backing store for the MasterBehavior property. |
PromptSignalName | (Inherited from Page) |
Properties
AnchorX |
Gets or sets the X component of the center point for any transform, relative to the bounds of the element. This is a bindable property. (Inherited from VisualElement) |
AnchorY |
Gets or sets the Y component of the center point for any transform, relative to the bounds of the element. This is a bindable property. (Inherited from VisualElement) |
AutomationId |
Gets or sets a value that allows the automation framework to find and interact with this element. (Inherited from Element) |
Background | (Inherited from VisualElement) |
BackgroundColor |
Gets or sets the color which will fill the background of a VisualElement. This is a bindable property. (Inherited from VisualElement) |
BackgroundImage |
Obsolete.
Identifies the image used as a background for the Page. (Inherited from Page) |
BackgroundImageSource | (Inherited from Page) |
Batched |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
Behaviors |
Gets the list of Behaviors associated to this element. This is a bindable property. (Inherited from VisualElement) |
BindingContext |
Gets or sets object that contains the properties that will be targeted by the bound properties that belong to this BindableObject. (Inherited from BindableObject) |
Bounds |
Gets the bounds of the element. (Inherited from VisualElement) |
CanChangeIsPresented | (Inherited from FlyoutPage) |
class | (Inherited from NavigableElement) |
ClassId |
Gets or sets a value used to identify a collection of semantically similar elements. (Inherited from Element) |
Clip | (Inherited from VisualElement) |
ContainerArea |
For internal use by the Xamarin.Forms platform. (Inherited from Page) |
Detail | (Inherited from FlyoutPage) |
DetailBounds | (Inherited from FlyoutPage) |
DisableLayout |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
Dispatcher | (Inherited from BindableObject) |
EffectControlProvider |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
Effects |
A list of the effects that are applied to this item. (Inherited from Element) |
FlowDirection |
Gets or sets the layout flow direction. (Inherited from VisualElement) |
Flyout | (Inherited from FlyoutPage) |
FlyoutBounds | (Inherited from FlyoutPage) |
FlyoutLayoutBehavior | (Inherited from FlyoutPage) |
Height |
Gets the current rendered height of this element. This is a read-only bindable property. (Inherited from VisualElement) |
HeightRequest |
Gets or sets the desired height override of this element. (Inherited from VisualElement) |
Icon |
Obsolete.
Resource identifier for the Page's associated icon. (Inherited from Page) |
IconImageSource | (Inherited from Page) |
Id |
Gets a value that can be used to uniquely identify an element through the run of an application. (Inherited from Element) |
IgnoresContainerArea |
For internal use by the Xamarin.Forms platform. (Inherited from Page) |
InputTransparent |
Gets or sets a value indicating whether this element should be involved in the user interaction cycle. This is a bindable property. (Inherited from VisualElement) |
InternalChildren |
For internal use by the Xamarin.Forms platform. (Inherited from Page) |
IsBusy |
Marks the Page as busy. This will cause the platform specific global activity indicator to show a busy state. (Inherited from Page) |
IsEnabled |
Gets or sets a value indicating whether this element is enabled in the user interface. This is a bindable property. (Inherited from VisualElement) |
IsFocused |
Gets a value indicating whether this element is focused currently. This is a bindable property. (Inherited from VisualElement) |
IsGestureEnabled | (Inherited from FlyoutPage) |
IsInNativeLayout |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
IsNativeStateConsistent |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
IsPlatformEnabled |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
IsPresented | (Inherited from FlyoutPage) |
IsTabStop |
Gets or sets a value that indicates whether this element is included in tab navigation. This is a bindable property. (Inherited from VisualElement) |
IsVisible |
Gets or sets a value that determines whether this elements should be part of the visual tree or not. This is a bindable property. (Inherited from VisualElement) |
LogicalChildren |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
Master |
Gets or sets the master page. |
MasterBehavior |
Gets or sets a value that indicates how detail content is displayed. |
MasterBounds |
For internal use by the Xamarin.Forms platform. |
MinimumHeightRequest |
Gets or sets a value which overrides the minimum height the element will request during layout. (Inherited from VisualElement) |
MinimumWidthRequest |
Gets or sets a value which overrides the minimum width the element will request during layout. (Inherited from VisualElement) |
Navigation | (Inherited from NavigableElement) |
NavigationProxy | (Inherited from NavigableElement) |
Opacity |
Gets or sets the opacity value applied to the element when it is rendered. This is a bindable property. (Inherited from VisualElement) |
Padding |
The space between the content of the Page and it's border. (Inherited from Page) |
Parent |
Gets or sets the parent element of the element. (Inherited from Element) |
ParentView |
Obsolete.
Gets the element which is the closest ancestor of this element that is a VisualElement. (Inherited from Element) |
Platform |
Obsolete.
(Inherited from Element)
|
RealParent |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
Resources |
Gets or sets the local resource dictionary. (Inherited from VisualElement) |
Rotation |
Gets or sets the rotation (in degrees) about the Z-axis (affine rotation) when the element is rendered. (Inherited from VisualElement) |
RotationX |
Gets or sets the rotation (in degrees) about the X-axis (perspective rotation) when the element is rendered. (Inherited from VisualElement) |
RotationY |
Gets or sets the rotation (in degrees) about the Y-axis (perspective rotation) when the element is rendered. (Inherited from VisualElement) |
Scale |
Gets or sets the scale factor applied to the element. (Inherited from VisualElement) |
ScaleX |
Gets or sets a scale value to apply to the X direction. (Inherited from VisualElement) |
ScaleY |
Gets or sets a scale value to apply to the Y direction. (Inherited from VisualElement) |
ShouldShowSplitMode | (Inherited from FlyoutPage) |
Style | (Inherited from NavigableElement) |
StyleClass | (Inherited from NavigableElement) |
StyleId |
Gets or sets a user defined value to uniquely identify the element. (Inherited from Element) |
TabIndex | (Inherited from VisualElement) |
Title |
The Page's title. (Inherited from Page) |
ToolbarItems |
A set of ToolbarItems, implemented in a platform-specific manner. (Inherited from Page) |
TranslationX |
Gets or sets the X translation delta of the element. (Inherited from VisualElement) |
TranslationY |
Gets or sets the Y translation delta of the element. (Inherited from VisualElement) |
Triggers |
Gets the list of Trigger associated to this element. This is a bindable property. (Inherited from VisualElement) |
Visual | (Inherited from VisualElement) |
Width |
Gets the current rendered width of this element. This is a read-only bindable property. (Inherited from VisualElement) |
WidthRequest |
Gets or sets the desired width override of this element. (Inherited from VisualElement) |
X |
Gets the current X position of this element. This is a read-only bindable property. (Inherited from VisualElement) |
Y |
Gets the current Y position of this element. This is a read-only bindable property. (Inherited from VisualElement) |
Methods
ApplyBindings() |
Apply the bindings to BindingContext. (Inherited from BindableObject) |
BatchBegin() |
Signals the start of a batch of changes to the elements properties. (Inherited from VisualElement) |
BatchCommit() |
Signals the end of a batch of commands to the element and that those commands should now be committed. (Inherited from VisualElement) |
ChangeVisualState() |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
ClearValue(BindableProperty) |
Clears any value set by SetValue for |
ClearValue(BindablePropertyKey) |
Clears any value set by SetValue for the property that is identified by |
CoerceValue(BindableProperty) | (Inherited from BindableObject) |
CoerceValue(BindablePropertyKey) | (Inherited from BindableObject) |
Descendants() |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
DisplayActionSheet(String, String, String, String[]) |
Displays a native platform action sheet, allowing the application user to choose from several buttons. (Inherited from Page) |
DisplayAlert(String, String, String, String) |
Presents an alert dialog to the application user with an accept and a cancel button. (Inherited from Page) |
DisplayAlert(String, String, String) |
Presents an alert dialog to the application user with a single cancel button. (Inherited from Page) |
DisplayPromptAsync(String, String, String, String, String, Int32, Keyboard, String) | (Inherited from Page) |
DisplayPromptAsync(String, String, String, String, String, Int32, Keyboard) |
Obsolete.
(Inherited from Page)
|
EffectIsAttached(String) |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
FindByName(String) |
Returns the element that has the specified name. (Inherited from Element) |
Focus() |
Attemps to set focus to this element. (Inherited from VisualElement) |
ForceLayout() |
Forces the Page to perform a layout pass. (Inherited from Page) |
GetSizeRequest(Double, Double) |
Obsolete.
Returns the SizeRequest of the element. Calling this method begins the measure pass of a layout cycle. (Inherited from VisualElement) |
GetValue(BindableProperty) |
Returns the value that is contained in the BindableProperty. (Inherited from BindableObject) |
GetValues(BindableProperty, BindableProperty, BindableProperty) |
Obsolete.
For internal use by the Xamarin.Forms platform. (Inherited from BindableObject) |
GetValues(BindableProperty, BindableProperty) |
Obsolete.
For internal use by the Xamarin.Forms platform. (Inherited from BindableObject) |
InvalidateMeasure() |
Method that is called to invalidate the layout of this VisualElement. Raises the MeasureInvalidated event. (Inherited from VisualElement) |
InvalidateMeasureNonVirtual(InvalidationTrigger) |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
IsSet(BindableProperty) |
Returns |
Layout(Rectangle) |
Updates the bounds of the element during the layout cycle. (Inherited from VisualElement) |
LayoutChildren(Double, Double, Double, Double) | (Inherited from FlyoutPage) |
Measure(Double, Double, MeasureFlags) |
Returns the minimum size that a visual element needs in order to be displayed on the device. (Inherited from VisualElement) |
NativeSizeChanged() |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
On<T>() |
Returns the platform-specific instance of this MasterDetailPage, on which a platform-specific method may be called. |
OnAppearing() | (Inherited from FlyoutPage) |
OnBackButtonPressed() | (Inherited from FlyoutPage) |
OnBindingContextChanged() |
Invoked whenever the binding context of the Page changes. Override this method to add class handling for this event. (Inherited from Page) |
OnChildAdded(Element) |
Application developers can override this method to respond when a child is added. (Inherited from VisualElement) |
OnChildMeasureInvalidated(Object, EventArgs) |
Indicates that the preferred size of a child Element has changed. (Inherited from Page) |
OnChildRemoved(Element, Int32) | (Inherited from VisualElement) |
OnChildRemoved(Element) |
Obsolete.
Application developers can override this method to respond when a child is removed. (Inherited from VisualElement) |
OnChildrenReordered() |
Invoked whenever the ChildrenReordered event is about to be emitted. Implement this method to add class handling for this event. (Inherited from VisualElement) |
OnDisappearing() |
When overridden, allows the application developer to customize behavior as the Page disappears. (Inherited from Page) |
OnMeasure(Double, Double) |
Method that is called when a layout measurement happens. (Inherited from VisualElement) |
OnParentSet() | (Inherited from FlyoutPage) |
OnPropertyChanged(String) | |
OnPropertyChanging(String) | |
OnSizeAllocated(Double, Double) |
Indicates that the Page has been assigned a size. (Inherited from Page) |
OnSizeRequest(Double, Double) |
Obsolete.
This method is called during the measure pass of a layout cycle to get the desired size of an element. (Inherited from VisualElement) |
OnTabIndexPropertyChanged(Int32, Int32) | (Inherited from VisualElement) |
OnTabStopPropertyChanged(Boolean, Boolean) | (Inherited from VisualElement) |
RemoveBinding(BindableProperty) |
Removes a previously set binding. (Inherited from BindableObject) |
RemoveDynamicResource(BindableProperty) |
Removes a previously set dynamic resource (Inherited from Element) |
SendAppearing() |
For internal use by the Xamarin.Forms platform. (Inherited from Page) |
SendBackButtonPressed() |
Calls OnBackButtonPressed(). (Inherited from Page) |
SendDisappearing() |
For internal use by the Xamarin.Forms platform. (Inherited from Page) |
SetBinding(BindableProperty, BindingBase) |
Assigns a binding to a property. (Inherited from BindableObject) |
SetDynamicResource(BindableProperty, String) |
Sets the BindableProperty property of this element to be updated via the DynamicResource with the provided key. (Inherited from Element) |
SetValue(BindableProperty, Object) |
Sets the value of the specified property. (Inherited from BindableObject) |
SetValue(BindablePropertyKey, Object) |
Sets the value of the propertyKey. (Inherited from BindableObject) |
SetValueCore(BindableProperty, Object, SetValueFlags) |
For internal use by the Xamarin.Forms platform. (Inherited from BindableObject) |
SetValueFromRenderer(BindableProperty, Object) |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
SetValueFromRenderer(BindablePropertyKey, Object) |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
ShouldShowToolbarButton() | (Inherited from FlyoutPage) |
SizeAllocated(Double, Double) |
SizeAllocated is called during a layout cycle to signal the start of a sub-tree layout. (Inherited from VisualElement) |
TabIndexDefaultValueCreator() | (Inherited from VisualElement) |
TabStopDefaultValueCreator() | (Inherited from VisualElement) |
UnapplyBindings() |
Unapplies all previously set bindings. (Inherited from BindableObject) |
Unfocus() |
Unsets focus to this element. (Inherited from VisualElement) |
UpdateChildrenLayout() |
Requests that the children Elements of the Page update their layouts. (Inherited from Page) |
UpdateFlyoutLayoutBehavior() | (Inherited from FlyoutPage) |
Events
Appearing |
Indicates that the Page is about to appear. (Inherited from Page) |
BackButtonPressed | (Inherited from FlyoutPage) |
BatchCommitted |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
BindingContextChanged |
Raised whenever the BindingContext property changes. (Inherited from BindableObject) |
ChildAdded |
Occurs whenever a child element is added to the element. (Inherited from Element) |
ChildRemoved |
Occurs whenever a child element is removed from the element. (Inherited from Element) |
ChildrenReordered |
Occurs when the Children of a VisualElement have been re-ordered. (Inherited from VisualElement) |
DescendantAdded |
Occurs whenever a child element is added to the elements subtree. (Inherited from Element) |
DescendantRemoved |
Occurs whenever a child element is removed from the elements subtree. (Inherited from Element) |
Disappearing |
Indicates that the Page is about to cease displaying. (Inherited from Page) |
FocusChangeRequested |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
Focused |
Occurs when the element receives focus. (Inherited from VisualElement) |
IsPresentedChanged | (Inherited from FlyoutPage) |
LayoutChanged |
Raised when the layout of the Page has changed. (Inherited from Page) |
MeasureInvalidated |
Event that is raised when the layout of a visual element is invalidated. (Inherited from VisualElement) |
PlatformSet |
Obsolete.
(Inherited from Element)
|
PropertyChanged |
Raised when a property has changed. (Inherited from BindableObject) |
PropertyChanging |
Raised when a property is about to change. (Inherited from BindableObject) |
SizeChanged |
Occurs when either the Width or the Height properties change value on this element. (Inherited from VisualElement) |
Unfocused |
Occurs when the element loses focus. (Inherited from VisualElement) |
Explicit Interface Implementations
IDynamicResourceHandler.SetDynamicResource(BindableProperty, String) |
For internal use by the Xamarin.Forms platform. (Inherited from BindableObject) |
IElementController.SetValueFromRenderer(BindableProperty, Object) |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
INameScope.RegisterName(String, Object) |
For internal use only. (Inherited from Element) |
IVisualElementController.EffectiveFlowDirection |
Gets the effective visual flow direction for the element on the platform, taking into account the locale and logical flow settings. (Inherited from VisualElement) |
IVisualElementController.InvalidateMeasure(InvalidationTrigger) |
This method is for internal use. (Inherited from VisualElement) |