Click or drag to resize

Dialog Class

Attached behavior. Displays a Window based on an implementation of IDialogViewModel assigned to the attached property DialogDataContextProperty and a custom DataTemplate.
Inheritance Hierarchy

Namespace:  BionicCode.Utilities.Net.Framework.Wpf.Dialog
Assembly:  BionicCode.Utilities.Net.Framework.Wpf (in BionicCode.Utilities.Net.Framework.Wpf.dll) Version: 1.0.3.0 (1.0.0.0)
Syntax
public class Dialog : DependencyObject

The Dialog type exposes the following members.

Constructors
  NameDescription
Public methodDialog
Initializes a new instance of the Dialog class
Top
Properties
  NameDescription
Public propertyDependencyObjectType
Gets the DependencyObjectType that wraps the CLR type of this instance. 
(Inherited from DependencyObject.)
Public propertyDispatcher
Gets the Dispatcher this DispatcherObject is associated with.
(Inherited from DispatcherObject.)
Public propertyIsSealed
Gets a value that indicates whether this instance is currently sealed (read-only).
(Inherited from DependencyObject.)
Top
Methods
  NameDescription
Public methodClearValue(DependencyProperty)
Clears the local value of a property. The property to be cleared is specified by a DependencyProperty identifier.
(Inherited from DependencyObject.)
Public methodClearValue(DependencyPropertyKey)
Clears the local value of a read-only property. The property to be cleared is specified by a DependencyPropertyKey.
(Inherited from DependencyObject.)
Public methodCoerceValue
Coerces the value of the specified dependency property. This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.
(Inherited from DependencyObject.)
Public methodEquals
Determines whether a provided DependencyObject is equivalent to the current DependencyObject.
(Inherited from DependencyObject.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodStatic memberGetDataTemplateSelector
Returns the DataTemplateSelector registered with the attachingElement.
Public methodStatic memberGetDialogDataContext
The getter for the attached DialogDataContextProperty property.
Public methodGetHashCode
Gets a hash code for this DependencyObject.
(Inherited from DependencyObject.)
Public methodStatic memberGetIsClosable
Get method of the attached property IsClosableProperty.
Public methodStatic memberGetIsModal
Get method of the attached property IsModalProperty.
Public methodGetLocalValueEnumerator
Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.
(Inherited from DependencyObject.)
Public methodStatic memberGetStyle
Get method of the attached property StyleProperty.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetValue
Returns the current effective value of a dependency property on this instance of a DependencyObject.
(Inherited from DependencyObject.)
Public methodInvalidateProperty
Re-evaluates the effective value for the specified dependency property
(Inherited from DependencyObject.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodOnPropertyChanged
Invoked whenever the effective value of any dependency property on this DependencyObject has been updated. The specific dependency property that changed is reported in the event data.
(Inherited from DependencyObject.)
Public methodReadLocalValue
Returns the local value of a dependency property, if it exists.
(Inherited from DependencyObject.)
Public methodSetCurrentValue
Sets the value of a dependency property without changing its value source.
(Inherited from DependencyObject.)
Public methodStatic memberSetDataTemplateSelector
Set method of the attached DataTemplateSelectorProperty property.
Public methodStatic memberSetDialogDataContext
The setter for the attached DialogDataContextProperty property.
Public methodStatic memberSetIsClosable
Set method of the IsClosableProperty attached property.
Public methodStatic memberSetIsModal
Set method of the IsModalProperty attached property.
Public methodStatic memberSetStyle
Set method of the attached property StyleProperty.
Public methodSetValue(DependencyProperty, Object)
Sets the local value of a dependency property, specified by its dependency property identifier.
(Inherited from DependencyObject.)
Public methodSetValue(DependencyPropertyKey, Object)
Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.
(Inherited from DependencyObject.)
Protected methodShouldSerializeProperty
Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.
(Inherited from DependencyObject.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodStatic memberTryGetDialog
Attempts to get the dialog Window of the associated IDialogViewModel instance.
Top
Fields
  NameDescription
Public fieldStatic memberDataTemplateSelectorProperty
Attached property to set a DataTemplateSelector to use for the displayed dialog Window to display the content.
Public fieldStatic memberDialogDataContextProperty
Attached property designed to bind to a view model property of type IDialogViewModel. A change of this property will trigger the Dialog to show a Window with the DataContext set to the IDialogViewModel instance of this property.
Public fieldStatic memberIsClosableProperty
Attached property that controls if the user is allowed to explicitly close the Window.
Public fieldStatic memberIsModalProperty
Attached property that controls if the Window is shown modal.
Public fieldStatic memberStyleProperty
The attached Style property which holds the Style which should apply to the dialog. TargetType must be Window.
Top
Attached Properties
  NameDescription
Public attached propertyDataTemplateSelector
Attached property to set a DataTemplateSelector to use for the displayed dialog Window to display the content.
Public attached propertyDialogDataContext
Attached property designed to bind to a view model property of type IDialogViewModel. A change of this property will trigger the Dialog to show a Window with the DataContext set to the IDialogViewModel instance of this property.
Public attached propertyIsClosable
Attached property that controls if the user is allowed to explicitly close the Window.
Public attached propertyIsModal
Attached property that controls if the Window is shown modal.
Public attached propertyStyle
The attached Style property which holds the Style which should apply to the dialog. TargetType must be Window.
Top
Extension Methods
  NameDescription
Public Extension MethodEnumerateVisualChildElements<TChildren>
Traverses the visual tree towards the leafs until all elements with a matching element type is found. Returns an IEnumerable<T> to enable deferred traversal.
(Defined by HelperExtensions.)
Public Extension MethodFindVisualChildElements<TChildren>
Traverses the visual tree towards the leafs until all elements with a matching element type is found. Returns an IEnumerable<T> to enable deferred traversal.
(Defined by HelperExtensions.)
Public Extension MethodToDictionary()Overloaded. (Defined by HelperExtensions.)
Public Extension MethodToDictionary()Overloaded. (Defined by HelperExtensions.)
Public Extension MethodTryFindVisualChildElement<TChild>
Traverses the visual tree towards the leafs until an element with a matching element type is found.
(Defined by HelperExtensions.)
Public Extension MethodTryFindVisualChildElementByName<TChild>
Traverses the visual tree towards the leafs until an element with a matching element name is found.
(Defined by HelperExtensions.)
Public Extension MethodTryFindVisualParentElement<TParent>
Traverses the visual tree towards the root until an element with a matching element name is found.
(Defined by HelperExtensions.)
Public Extension MethodTryFindVisualParentElementByName<TChild>
Traverses the visual tree towards the root until an element with a matching element type is found.
(Defined by HelperExtensions.)
Top
Remarks
This attached behavior will display a dialog Window using the View-model-first pattern.

The IDialogViewModel instance bound to the DialogDataContextProperty will be assigned to the Content of the Window. To layout the content requires to define an implicit DataTemplate that targets the type of the IDialogViewModel implementation. Alternatively set the template for the ContentTemplate via a Style that targets Window and is assigned to the StyleProperty attached property. For more complex scenarios it is possible to assign a DataTemplateSelector to the DataTemplateSelectorProperty attached property.

To define the attributes like title and icon of the dialog, set the corresponding values of the IDialogViewModel implementation. Dialog sets up a data binding to those properties, so that they can be dynamically changed by the view model.

It is recommended to use and extend the abstract DialogViewModel, which provides the basic IDialogViewModel implementation and logic. It only needs to be extended to provide the required specific properties for the dialog's context.

To show a dialog, simply assign an instance of IDialogViewModel to the attached property DialogDataContextProperty. A change of that property will automatically display a new dialog window. To each IDialogViewModel maps an instance of Window. It is recommended to bind the attached DialogDataContextProperty to a property of a view model class that implements INotifyPropertyChanged. This way it is very simple to display dialogs dynamically initiated by the view model i.e. the binding source of the attached DialogDataContextProperty property.

To close a dialog, raise the InteractionCompleted event from the IDialogViewModel implementation e.g., by calling OnInteractionCompleted() or by invoking the SendResponseAsyncCommand (in case you followed the recommendation to extend DialogViewModel).

See Also
https://github.com/BionicCode/BionicCode.Net/blob/master/README.md