public abstract class Page : ViewModelBase, System.ComponentModel.INotifyPropertyChanged
Public MustInherit Class Page Inherits ViewModelBase Implements System.ComponentModel.INotifyPropertyChanged
public abstract class Page : ViewModelBase, System.ComponentModel.INotifyPropertyChanged
Public MustInherit Class Page Inherits ViewModelBase Implements System.ComponentModel.INotifyPropertyChanged
Property sheets hold a collection of individual unrelated property pages. Each page contains controls for setting a group of related properties. A property sheet can be shown modal or modeless.
Property sheets are purely declarative, they are defined only in DAML and have no corresponding managed class. Property pages, like Panes and DockPanes, have both declarative and active components. The active portion of all property pages must derive from this class.
Property pages only load when they become visible. They are not loaded when the sheet loads - the page has to be visited. When a page does load, its IsLoading property is first set to true. Next, its InitializeAsync function is executed. When the returned task completes, its IsLoading is reset to false.
Property pages have the option of being conditional. If a condition has been specified for the page in DAML, the page will not appear with the sheet unless its condition is currently satisfied.
Pages can also be grouped within a sheet by setting the sheet's hasGroups
attribute to true and specifying a group heading by setting the page's group
attribute.
When a property sheet is displayed with either Show or ShowDialog(String,String,Object[]), data can be passed in as one of the arguments and this data can be accessed by all of its pages using the Data property.
The property sheet dialog includes a title bar and several buttons: OK, Cancel, and Apply. The Apply button is only presented when the sheet is modeless. The OK button remains enabled as long as all pages report that they are valid, see IsValid. The Apply button enables once any page in the sheet sets its IsModified property to true and all page are valid. Once Apply or OK are clicked, each page that has set its IsModified flag to true will have its CommitAsync invoked. Similarly, if the Cancel button is clicked, their CancelAsync is invoked.
When a property sheet closes, each loaded page will have its Uninitialize invoked.
Declaring Pages in DAML: <insertSheet id="acme_mainSheet" caption="Test sheet">
<page id="acme_testPage"
caption="test page"
className="Pages.TestPage">
<content className="Pages.TestPageView"/>
</page>
</insertSheet>
DAML attributes | |
---|---|
assembly | Assembly name if not in the default assembly. |
caption | The default page heading. |
className | Required class identifier. Optionally include namespace if not in default namespace. |
condition | Only show the page in the sheet if the condition is valid. |
extendedCaption | A more descriptive title. |
group | Optional group heading. |
id | Required identifier. |
publicKeyToken | The necessary public key token if the assembly is strongly named. |
version | The version of the dll if the assembly is strongly named. |
System.Object
ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase
ArcGIS.Desktop.Framework.Contracts.ViewModelBase
ArcGIS.Desktop.Framework.Contracts.Page
Target Platforms: Windows 11, Windows 10