Xamarin.Forms.Core 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Object System.ComponentModel.INotifyPropertyChanged Xamarin.Forms.Internals.IDynamicResourceHandler Provides a mechanism by which application developers can propagate changes that are made to data in one object to another, by enabling validation, type coercion, and an event system. . The class provides a data storage mechanism that enables the application developer to synchronize data between objects in response to changes, for example, between the View and View Model in the MVVM design pattern. All of the visual elements in the namespace inherit from class, so they can all be used to bind the data behind their user interface elements to View Models that are supplied by the application developer. To bind the data behind a property in a , typically a view, to a property in the View Model, application developers should do the following. First, the developer creates a pair of properties on the view, one of which is a , and the other of which is a property of whatever type is required. In the code below, MockBindableObject stands in for what would typically be a user interface object in production code. Application developers should note the use of and to get and set the value on the bound property; The property of the desired type provides the interface that the target of the bound property will implement. ( // o => o.Foo, default (string) // ); public string BoundName { get { return (string) GetValue (BoundNameProperty); } set { SetValue (BoundNameProperty, value); } } } ]]> Second, the developer creates the implementation for the bound property in a class that implements the interface. In the MVVM design pattern, this is typically done by the View Model. Application developers should implement the interface on classes that they want to use as View Models. In the example below, app developers should take note of the idiomatic way that the Name property is implemented to, first, ensure that the property actually changed and return if it did not, and only then assign the value and call the method. Additionally, the Name property in the example below merely wraps the name field. In practice, the application developer may choose a different model in which to store application data. Third, and finally, the application developer binds an instance of a BindableObject to an instance that implements INotifyPropertyChanged. In the vocabulary of the MVVM design pattern, this is "binding an instance of the View to an instance of a View Model." Once this step is complete, changes in the data are propagated between the View and View Model in a way that is determined by the value of the enumeration, if any, that was passed during the binding step. The code below, when included in a project that reference the classes above, creates an instance of both MockBindable and MockViewModel, performs some intitialization, sets the binding, and then demonstrates a one-way binding. The code below runs without throwing an exception. Constructor 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 Initializes a new instance of the BindableObject class. The class is abstract, and this constructor is protected. It is invoked by child constructors. Method 2.0.0.0 System.Void Apply the bindings to . To be added. Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 System.Void The object that contains the properties that will be targeted by the bound properties that belong to this . This parameter is optional. Apply the bindings to . If an object is passed for the argument, bindings are first unapplied from . This method removes any current bindings from the old context, and applies every binding to the current . Application developers could use this method to bind the UI from a new View to an existing ViewModel, while optionally removing the bindings from the old View. Application developers can omit the argument in order to leave the old bindings in place. Property 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Object Gets or sets object that contains the properties that will be targeted by the bound properties that belong to this . An that contains the properties that will be targeted by the bound properties that belong to this . This is a bindable property. Typically, the runtime performance is better if is set after all calls to have been made. The following example shows how to apply a BindingContext and a Binding to a Label (inherits from BindableObject): Event 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.EventHandler Raised whenever the property changes. Field 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 Xamarin.Forms.BindableProperty Implements the bound property whose interface is provided by the property. Typically, the runtime performance is better if is set after all calls to have been made. The following example shows how to set a binding to the BindingContext: Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Void The BindableProperty to clear. Clears any value set by for . Calling this method on a readonly property will result in an InvalidOperationException. Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Void The BindablePropertyKey that identifies the to clear. Clears any value set by for the property that is identified by . Calling this method on a readonly property will result in an InvalidOperationException. Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Object The BindableProperty for which to get the value. Returns the value that is contained the BindableProperty. The value that is contained the . and are used to access the values of properties that are implemented by a . That is, application developers typically provide an interface for a bound property by defining property whose accessor casts the result of to the appropriate type and returns it, and whose accessor uses to set the value on the correct property. Application developers should perform no other steps in the public property that defines the interface of the bound property. The following example shows how to create a bindable property interface for an implementation that will be provided in the target property when the binding is made at run time. (w => w.My, default(string)); public string My { get { return (string)GetValue (MyProperty); } set { SetValue (MyProperty, value); } } } ]]> Method 2.0.0.0 System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never) System.Object[] To be added. To be added. To be added. To be added. To be added. To be added. Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Void Override this method to execute an action when the BindingContext changes. Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Void System.Runtime.CompilerServices.CallerMemberName The name of the property that changed. Call this method from a child class to notify that a change happened on a property. A triggers this by itself. An inheritor only needs to call this for properties without as the backend store. Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Void System.Runtime.CompilerServices.CallerMemberName The name of the property that is changing. Call this method from a child class to notify that a change is going to happen on a property. A triggers this by itself. An inheritor only needs to call this for properties without as the backend store. Event 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.ComponentModel.PropertyChangedEventHandler Raised when a property has changed. Event 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 Xamarin.Forms.PropertyChangingEventHandler Raised when a property is about to change. Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Void The BindableProperty from which to remove bindings. Removes a previously set binding. This method succeeds even if is not bound. Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Void The BindableProperty on which to set a binding. The binding to set. Assigns a binding to a property. The following example shows how to set a binding to a property: Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never) System.Void The object on which to set the inherited binding context. The inherited context to set. Sets the inherited context to a nested element. Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Void The BindableProperty on which to assign a value. The value to set. Sets the value of the specified property. and are used to access the values of properties that are implemented by a . That is, application developers typically provide an interface for a bound property by defining property whose accessor casts the result of to the appropriate type and returns it, and whose accessor uses to set the value on the correct property. Application developers should perform no other steps in the public property that defines the interface of the bound property. The following example shows how to create a bindable property interface for an implementation that will be provided in the target property when the binding is made at run time. (w => w.My, default(string)); public string My { get { return (string)GetValue (MyProperty); } set { SetValue (MyProperty, value); } } } ]]> Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Void The BindablePropertyKey on which to assign a value. The value to set. Sets the value of the propertyKey. This method and are useful to implement BindableProperties with limited write access. The write access is limited to the scope of the BindablePropertyKey. The following example shows how to declare a BindableProperty with "internal" write access. (w => w.My, default(string)); public static readonly BindableProperty MyProperty = MyPropertyKey.BindableProperty; public string My { get { return (string)GetValue (MyProperty); } internal set { SetValue (MyPropertyKey, value); } } } ]]> Method 2.0.0.0 System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never) System.Void To be added. To be added. To be added. To be added. To be added. Method 1.0.0.0 1.1.0.0 1.2.0.0 1.3.0.0 1.4.0.0 1.5.0.0 2.0.0.0 System.Void Unapplies all previously set bindings. This method removes all current bindings from the current context. Changing a bound property requires that the binding count for a bound property must be 0. The method merely decrements the cound, and does not remove all bindings everywhere. Method 1.4.0.0 System.Void To be added. To be added. For internal use only. To be added. Method 1.5.0.0 2.0.0.0 System.Void To be added. To be added. For internal use only. To be added.