GalaSoft.MvvmLight.Platform
Base class for bindings in Xamarin.iOS and Xamarin.Android.
The source at the "top" of the property chain.
The target at the "top" of the property chain.
Instructs the Binding instance to stop listening to value changes and to
remove all listeneners.
Forces the Binding's value to be reevaluated. The target value will
be set to the source value.
Forces the Binding's value to be reevaluated. The source value will
be set to the target value.
Occurs when the value of the databound property changes.
The mode of the binding. OneTime means that the target property will be set once (when the binding is
created) but that subsequent changes will be ignored. OneWay means that the target property will be set, and
if the PropertyChanged event is raised by the source, the target property will be updated. TwoWay means that the source
property will also be updated if the target raises the PropertyChanged event. Default means OneWay if only the source
implements INPC, and TwoWay if both the source and the target implement INPC.
Gets the source object for the binding.
Gets the target object for the binding.
Creates a binding between two properties. If the source implements INotifyPropertyChanged, the source property raises the PropertyChanged event
and the BindingMode is OneWay or TwoWay, the target property will be synchronized with the source property. If
the target implements INotifyPropertyChanged, the target property raises the PropertyChanged event and the BindingMode is
TwoWay, the source property will also be synchronized with the target property.
The type of the source property that is being databound.
The type of the target property that is being databound. If the source type
is not the same as the target type, an automatic conversion will be attempted. However only
simple types can be converted. For more complex conversions, use the
and methods to define custom converters.
Initializes a new instance of the Binding class for which the source and target properties
are located in different objects.
The source of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is OneWay or TwoWay, the target will be notified of changes to the target property.
The name of the source property for the binding.
The target of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is TwoWay, the source will be notified of changes to the source property.
The name of the target property for the binding.
The mode of the binding. OneTime means that the target property will be set once (when the binding is
created) but that subsequent changes will be ignored. OneWay means that the target property will be set, and
if the PropertyChanged event is raised by the source, the target property will be updated. TwoWay means that the source
property will also be updated if the target raises the PropertyChanged event. Default means OneWay if only the source
implements INPC, and TwoWay if both the source and the target implement INPC.
Initializes a new instance of the Binding class for which the source and target properties
are located in different objects.
The source of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is OneWay or TwoWay, the target will be notified of changes to the target property.
An expression pointing to the source property. It can be
a simple expression "() => [source].MyProperty" or a composed expression "() => [source].SomeObject.SomeOtherObject.SomeProperty".
The target of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is TwoWay, the source will be notified of changes to the source property.
An expression pointing to the target property. It can be
a simple expression "() => [target].MyProperty" or a composed expression "() => [target].SomeObject.SomeOtherObject.SomeProperty".
The mode of the binding. OneTime means that the target property will be set once (when the binding is
created) but that subsequent changes will be ignored. OneWay means that the target property will be set, and
if the PropertyChanged event is raised by the source, the target property will be updated. TwoWay means that the source
property will also be updated if the target raises the PropertyChanged event. Default means OneWay if only the source
implements INPC, and TwoWay if both the source and the target implement INPC.
Defines a custom conversion method for a binding. To be used when the
binding's source property is of a different type than the binding's
target property, and the conversion cannot be done automatically (simple
values).
A func that will be called with the source
property's value, and will return the target property's value.
The Binding instance.
Defines a custom conversion method for a two-way binding. To be used when the
binding's target property is of a different type than the binding's
source property, and the conversion cannot be done automatically (simple
values).
A func that will be called with the source
property's value, and will return the target property's value.
The Binding instance.
This method is inactive on OneTime or OneWay bindings.
Instructs the Binding instance to stop listening to value changes and to
remove all listeneners.
Forces the Binding's value to be reevaluated. The target value will
be set to the source value.
Forces the Binding's value to be reevaluated. The source value will
be set to the target value.
Define when the binding should be evaluated when the bound source object
is a control. Because Xamarin controls are not DependencyObjects, the
bound property will not automatically update the binding attached to it. Instead,
use this method to define which of the control's events should be observed.
The name of the event that should be observed
to update the binding's value.
The Binding instance.
When this method is called
on a OneTime binding. Such bindings cannot be updated. This exception can
also be thrown when the source object is null or has already been
garbage collected before this method is called.
When the eventName parameter is null
or is an empty string.
When the requested event does not exist on the
source control.
Define that the binding should be evaluated when the bound control's source property changes.
Because Xamarin controls are not DependencyObjects, the
bound property will not automatically update the binding attached to it. Instead,
use this method to specify that the binding must be updated when the property changes.
This method should only be used with the following items:
- an EditText control and its Text property (TextChanged event).
- a CompoundButton control and its Checked property (CheckedChange event).
The Binding instance.
When this method is called
on a OneTime binding. Such bindings cannot be updated. This exception can
also be thrown when the source object is null or has already been
garbage collected before this method is called.
Define when the binding should be evaluated when the bound source object
is a control. Because Xamarin controls are not DependencyObjects, the
bound property will not automatically update the binding attached to it. Instead,
use this method to define which of the control's events should be observed.
Defines the binding's update mode. Use
to update the binding when
the source control loses the focus. You can also use
to update the binding
when the source control's property changes.
The PropertyChanged mode should only be used with the following items:
- an EditText control and its Text property (TextChanged event).
- a CompoundButton control and its Checked property (CheckedChange event).
The Binding instance.
When this method is called
on a OneTime binding. Such bindings cannot be updated. This exception can
also be thrown when the source object is null or has already been
garbage collected before this method is called.
Define when the binding should be evaluated when the bound source object
is a control. Because Xamarin controls are not DependencyObjects, the
bound property will not automatically update the binding attached to it. Instead,
use this method to define which of the control's events should be observed.
Use this method when the event requires a specific EventArgs type
instead of the standard EventHandler.
The type of the EventArgs used by this control's event.
The name of the event that should be observed
to update the binding's value.
The Binding instance.
When this method is called
on a OneTime binding. Such bindings cannot be updated. This exception can
also be thrown when the source object is null or has already been
garbage collected before this method is called.
When the eventName parameter is null
or is an empty string.
When the requested event does not exist on the
source control.
Define that the binding should be evaluated when the bound control's target property changes.
Because Xamarin controls are not DependencyObjects, the
bound property will not automatically update the binding attached to it. Instead,
use this method to specify that the binding must be updated when the property changes.
This method should only be used with the following items:
- an EditText control and its Text property (TextChanged event).
- a CompoundButton control and its Checked property (CheckedChange event).
The Binding instance.
When this method is called
on a OneTime or a OneWay binding. This exception can
also be thrown when the target object is null or has already been
garbage collected before this method is called.
Define when the binding should be evaluated when the bound target object
is a control. Because Xamarin controls are not DependencyObjects, the
bound property will not automatically update the binding attached to it. Instead,
use this method to define which of the control's events should be observed.
Defines the binding's update mode. Use
to update the binding when
the source control loses the focus. You can also use
to update the binding
when the source control's property changes.
The PropertyChanged mode should only be used with the following items:
- an EditText control and its Text property (TextChanged event).
- a CompoundButton control and its Checked property (CheckedChange event).
The Binding instance.
When this method is called
on a OneTime or a OneWay binding. This exception can
also be thrown when the source object is null or has already been
garbage collected before this method is called.
Define when the binding should be evaluated when the bound target object
is a control. Because Xamarin controls are not DependencyObjects, the
bound property will not automatically update the binding attached to it. Instead,
use this method to define which of the control's events should be observed.
The name of the event that should be observed
to update the binding's value.
The Binding instance.
When this method is called
on a OneTime or a OneWay binding. This exception can
also be thrown when the source object is null or has already been
garbage collected before this method is called.
When the eventName parameter is null
or is an empty string.
When the requested event does not exist on the
target control.
Define when the binding should be evaluated when the bound target object
is a control. Because Xamarin controls are not DependencyObjects, the
bound property will not automatically update the binding attached to it. Instead,
use this method to define which of the control's events should be observed.
Use this method when the event requires a specific EventArgs type
instead of the standard EventHandler.
The type of the EventArgs used by this control's event.
The name of the event that should be observed
to update the binding's value.
The Binding instance.
When this method is called
on a OneTime or OneWay binding. This exception can
also be thrown when the target object is null or has already been
garbage collected before this method is called.
When the eventName parameter is null
or is an empty string.
When the requested event does not exist on the
target control.
Defines an action that will be executed every time that the binding value
changes.
The action that will be executed when the binding changes.
The Binding instance.
When WhenSourceChanges is called on
a binding which already has a target property set.
Occurs when the value of the databound property changes.
Gets the current value of the binding.
Provides event listening support for classes that expect to receive events
through the WeakEvent pattern and a WeakEventManager.
Receives events from the centralized event manager.
The type of the WeakEventManager calling this method.
Object that originated the event.
Event data.
true if the listener handled the event. It is considered an error by the
WeakEventManager handling in WPF to register a listener for an event that the
listener does not handle. Regardless, the method should return false if it receives
an event that it does not recognize or handle.
The mode of the .
A default binding is a one way binding.
A one time binding. The binding's value will be set when the
binding is created but subsequent changes will be ignored/
A one way binding, where the changes to the source
property will update the target property, but changes to the
target property don't affect the source property.
A two way binding, where the changes to the source
property will update the target property, and vice versa.
Defines extension methods used to add data bindings and commands between Xamarin
Android and iOS elements.
Sets a data binding between two properties. If the source implements INotifyPropertyChanged, the source property raises the PropertyChanged event
and the BindingMode is OneWay or TwoWay, the target property will be synchronized with the source property. If
the target implements INotifyPropertyChanged, the target property raises the PropertyChanged event and the BindingMode is
TwoWay, the source property will also be synchronized with the target property.
This class allows for a different TSource and TTarget and is able to perform simple
type conversions automatically. This is useful if the source property and the target
property are of different type.
If the type conversion is complex, please use the
and methods to configure the binding.
It is very possible that TSource and TTarget are the same type in which case no conversion occurs.
The type of the property that is being databound before conversion.
The type of the property that is being databound after conversion.
The target of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is TwoWay, the source will be notified of changes to the source property.
An expression pointing to the target property. It can be
a simple expression "() => [target].MyProperty" or a composed expression "() => [target].SomeObject.SomeOtherObject.SomeProperty".
The source of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is OneWay or TwoWay, the target will be notified of changes to the target property.
An expression pointing to the source property. It can be
a simple expression "() => [source].MyProperty" or a composed expression "() => [source].SomeObject.SomeOtherObject.SomeProperty".
The mode of the binding. OneTime means that the target property will be set once (when the binding is
created) but that subsequent changes will be ignored. OneWay means that the target property will be set, and
if the PropertyChanged event is raised by the source, the target property will be updated. TwoWay means that the source
property will also be updated if the target raises the PropertyChanged event. Default means OneWay if only the source
implements INPC, and TwoWay if both the source and the target implement INPC.
The new Binding instance.
Creates a with a source property but without a target.
This type of bindings is useful for the
and methods, to use as CommandParameter
binding.
The source of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is OneWay or TwoWay, the target will be notified of changes to the target property.
An expression pointing to the source property. It can be
a simple expression "() => [source].MyProperty" or a composed expression "() => [source].SomeObject.SomeOtherObject.SomeProperty".
The mode of the binding. OneTime means that the target property will be set once (when the binding is
created) but that subsequent changes will be ignored. OneWay means that the target property will be set, and
if the PropertyChanged event is raised by the source, the target property will be updated. TwoWay means that the source
property will also be updated if the target raises the PropertyChanged event. Default means OneWay if only the source
implements INPC, and TwoWay if both the source and the target implement INPC.
The type of the bound property.
The created binding instance.
Sets a data binding between two properties of the same object. If the source implements INotifyPropertyChanged, has observable properties
and the BindingMode is OneWay or TwoWay, the target property will be notified of changes to the source property. If
the target implements INotifyPropertyChanged, has observable properties and the BindingMode is
TwoWay, the source will also be notified of changes to the target's properties.
The type of the source property that is being databound.
The type of the target property that is being databound. If the source type
is not the same as the target type, an automatic conversion will be attempted. However only
simple types can be converted. For more complex conversions, use the
and methods to define custom converters.
An expression pointing to the target property. It can be
a simple expression "() => [target].MyProperty" or a composed expression "() => [target].SomeObject.SomeOtherObject.SomeProperty".
The source of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is OneWay or TwoWay, the target will be notified of changes to the target property.
An expression pointing to the source property. It can be
a simple expression "() => [source].MyProperty" or a composed expression "() => [source].SomeObject.SomeOtherObject.SomeProperty".
The mode of the binding. OneTime means that the target property will be set once (when the binding is
created) but that subsequent changes will be ignored. OneWay means that the target property will be set, and
if the PropertyChanged event is raised by the source, the target property will be updated. TwoWay means that the source
property will also be updated if the target raises the PropertyChanged event. Default means OneWay if only the source
implements INPC, and TwoWay if both the source and the target implement INPC.
The new Binding instance.
Sets a data binding between two properties. If the source implements INotifyPropertyChanged, the source property raises the PropertyChanged event
and the BindingMode is OneWay or TwoWay, the target property will be synchronized with the source property. If
the target implements INotifyPropertyChanged, the target property raises the PropertyChanged event and the BindingMode is
TwoWay, the source property will also be synchronized with the target property.
The type of the source property that is being databound.
The type of the target property that is being databound. If the source type
is not the same as the target type, an automatic conversion will be attempted. However only
simple types can be converted. For more complex conversions, use the
and methods to define custom converters.
The target of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is TwoWay, the source will be notified of changes to the source property.
The name of the target property. This must be a simple name, without dots.
The source of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is OneWay or TwoWay, the target will be notified of changes to the target property.
The name of the source property. This must be a simple name, without dots.
The mode of the binding. OneTime means that the target property will be set once (when the binding is
created) but that subsequent changes will be ignored. OneWay means that the target property will be set, and
if the PropertyChanged event is raised by the source, the target property will be updated. TwoWay means that the source
property will also be updated if the target raises the PropertyChanged event. Default means OneWay if only the source
implements INPC, and TwoWay if both the source and the target implement INPC.
The new Binding instance.
Sets a data binding between two properties of the same object. If the source implements INotifyPropertyChanged, has observable properties
and the BindingMode is OneWay or TwoWay, the target property will be notified of changes to the source property. If
the target implements INotifyPropertyChanged, has observable properties and the BindingMode is
TwoWay, the source will also be notified of changes to the target's properties.
The type of the source property that is being databound.
The type of the target property that is being databound. If the source type
is not the same as the target type, an automatic conversion will be attempted. However only
simple types can be converted. For more complex conversions, use the
and methods to define custom converters.
The name of the target property. This must be a simple name, without dots.
The source of the binding. If this object implements INotifyPropertyChanged and the
BindingMode is OneWay or TwoWay, the target will be notified of changes to the target property.
The name of the source property. This must be a simple name, without dots.
The mode of the binding. OneTime means that the target property will be set once (when the binding is
created) but that subsequent changes will be ignored. OneWay means that the target property will be set, and
if the PropertyChanged event is raised by the source, the target property will be updated. TwoWay means that the source
property will also be updated if the target raises the PropertyChanged event. Default means OneWay if only the source
implements INPC, and TwoWay if both the source and the target implement INPC.
The new Binding instance.
Sets a generic RelayCommand to an object and actuate the command when a specific event is raised. This method
should be used when the event uses an EventHandler<TEventArgs>.
The type of the CommandParameter that will be passed to the RelayCommand.
The type of the event's arguments.
The element to which the command is added.
The name of the event that will be subscribed to to actuate the command.
The command that must be added to the element.
A Binding instance subscribed to
the CommandParameter that will passed to the RelayCommand. Depending on the Binding, the CommandParameter
will be observed and changes will be passed to the command, for example to update the CanExecute.
Sets a generic RelayCommand to an object and actuate the command when a specific event is raised. This method
can only be used when the event uses a standard EventHandler.
The type of the CommandParameter that will be passed to the RelayCommand.
The element to which the command is added.
The name of the event that will be subscribed to to actuate the command.
The command that must be added to the element.
A Binding instance subscribed to
the CommandParameter that will passed to the RelayCommand. Depending on the Binding, the CommandParameter
will be observed and changes will be passed to the command, for example to update the CanExecute.
Sets a non-generic RelayCommand to an object and actuate the command when a specific event is raised. This method
can only be used when the event uses a standard EventHandler.
The element to which the command is added.
The name of the event that will be subscribed to to actuate the command.
The command that must be added to the element.
Creates a new for a given .
The type of the items contained in the .
The collection that the adapter will be created for.
A method taking an item's position in the list, the item itself,
and a recycled Android View, and returning an adapted View for this item. Note that the recycled
view might be null, in which case a new View must be inflated by this method.
A View adapted for the item passed as parameter.
Creates a new for a given .
The type of the items contained in the .
The list that the adapter will be created for.
A method taking an item's position in the list, the item itself,
and a recycled Android , and returning an adapted View for this item. Note that the recycled
View might be null, in which case a new View must be inflated by this method.
An adapter adapted to the collection passed in parameter..
A that can be used with an Android ListView. After setting
the and the properties, the adapter is
suitable for a list control. If the DataSource is an ,
changes to the collection will be observed and the UI will automatically be updated.
The type of the items contained in the .
Returns a unique ID for the item corresponding to the position parameter.
In this implementation, the method always returns the position itself.
The position of the item for which the ID needs to be returned.
A unique ID for the item corresponding to the position parameter.
Prepares the view (template) for the item corresponding to the position
in the DataSource. This method calls the method so that the caller
can create (if necessary) and adapt the template for the corresponding item.
The position of the item in the DataSource.
A recycled view. If this parameter is null,
a new view must be inflated.
The view's parent.
A view adapted for the item at the corresponding position.
Gets the number of items in the DataSource.
Gets or sets the list containing the items to be represented in the list control.
Gets and sets a method taking an item's position in the list, the item itself,
and a recycled Android View, and returning an adapted View for this item. Note that the recycled
view might be null, in which case a new View must be inflated by this method.
Gets the item corresponding to the index in the DataSource.
The index of the item that needs to be returned.
The item corresponding to the index in the DataSource
Provides an implementation so that you can use the
"weak event listener" pattern to attach listeners
for the event.
Adds the specified listener to the list of listeners on the specified source.
The object with the event.
The object to add as a listener.
The name of the property that exists on
source upon which to listen for changes.
Removes the specified listener from the list of listeners on the
specified source.
The object to remove as a listener.
Begin listening for the event on
the provided source.
The object on which to start listening
for .
Stop listening for the event on the
provided source.
The object on which to start listening for
.
The method that handles the event.
The source of the event.
A that
contains the event data.
Private method to add the specified listener to the list of listeners
on the specified source.
The object with the event.
The object to add as a listener.
The name of the property that exists
on source upon which to listen for changes.
Private method to remove the specified listener from the list of listeners
on the specified source.
The object to remove as a listener.
Get the current instance of
Defines how a is updated by a source control.
Defines that the binding should be updated when the control
loses the focus.
Defines that the binding should be updated when the control's
bound property changes.
A base class for Activities that allow the
to keep track of the navigation journal.
If possible, discards the current page and displays the previous page
on the navigation stack.
Overrides . If you override
this method in your own Activities, make sure to call
base.OnDestroy to allow the
to work properly.
Overrides . If you override
this method in your own Activities, make sure to call
base.OnPause to allow the
to work properly.
Overrides . If you override
this method in your own Activities, make sure to call
base.OnResume to allow the
to work properly.
The activity that is currently in the foreground.
An implementation of allowing
to display simple dialogs to the user. Note that this class
uses the built in Android dialogs which may or may not
be sufficient for your needs. Using this class is easy
but feel free to develop your own IDialogService implementation
if needed.
Displays information about an error.
The message to be shown to the user.
The title of the dialog box. This may be null.
The text shown in the only button
in the dialog box. If left null, the text "OK" will be used.
A callback that should be executed after
the dialog box is closed by the user.
A Task allowing this async method to be awaited.
Displaying dialogs in Android is synchronous. As such,
this method will be executed synchronously even though it can be awaited
for cross-platform compatibility purposes.
Displays information about an error.
The exception of which the message must be shown to the user.
The title of the dialog box. This may be null.
The text shown in the only button
in the dialog box. If left null, the text "OK" will be used.
A callback that should be executed after
the dialog box is closed by the user.
A Task allowing this async method to be awaited.
Displaying dialogs in Android is synchronous. As such,
this method will be executed synchronously even though it can be awaited
for cross-platform compatibility purposes.
Displays information to the user. The dialog box will have only
one button with the text "OK".
The message to be shown to the user.
The title of the dialog box. This may be null.
A Task allowing this async method to be awaited.
Displaying dialogs in Android is synchronous. As such,
this method will be executed synchronously even though it can be awaited
for cross-platform compatibility purposes.
Displays information to the user. The dialog box will have only
one button.
The message to be shown to the user.
The title of the dialog box. This may be null.
The text shown in the only button
in the dialog box. If left null, the text "OK" will be used.
A callback that should be executed after
the dialog box is closed by the user.
A Task allowing this async method to be awaited.
Displaying dialogs in Android is synchronous. As such,
this method will be executed synchronously even though it can be awaited
for cross-platform compatibility purposes.
Displays information to the user. The dialog box will have only
one button.
The message to be shown to the user.
The title of the dialog box. This may be null.
The text shown in the "confirm" button
in the dialog box. If left null, the text "OK" will be used.
The text shown in the "cancel" button
in the dialog box. If left null, the text "Cancel" will be used.
A callback that should be executed after
the dialog box is closed by the user. The callback method will get a boolean
parameter indicating if the "confirm" button (true) or the "cancel" button
(false) was pressed by the user.
A Task allowing this async method to be awaited. The task will return
true or false depending on the dialog result.
Displaying dialogs in Android is synchronous. As such,
this method will be executed synchronously even though it can be awaited
for cross-platform compatibility purposes.
Displays information to the user in a simple dialog box. The dialog box will have only
one button with the text "OK". This method should be used for debugging purposes.
The message to be shown to the user.
The title of the dialog box. This may be null.
A Task allowing this async method to be awaited.
Displaying dialogs in Android is synchronous. As such,
this method will be executed synchronously even though it can be awaited
for cross-platform compatibility purposes.
Xamarin Android implementation of .
This implementation can be used in Xamarin Android applications (not Xamarin Forms).
For this navigation service to work properly, your Activities
should derive from the class.
The key that is returned by the property
when the current Activiy is the root activity.
If possible, discards the current page and displays the previous page
on the navigation stack.
Displays a new page corresponding to the given key.
Make sure to call the
method first.
The key corresponding to the page
that should be displayed.
When this method is called for
a key that has not been configured earlier.
Displays a new page corresponding to the given key,
and passes a parameter to the new page.
Make sure to call the
method first.
The key corresponding to the page
that should be displayed.
The parameter that should be passed
to the new page.
When this method is called for
a key that has not been configured earlier.
Adds a key/page pair to the navigation service.
For this navigation service to work properly, your Activities
should derive from the class.
The key that will be used later
in the or methods.
The type of the activity (page) corresponding to the key.
Allows a caller to get the navigation parameter corresponding
to the Intent parameter.
The
of the navigated page.
The navigation parameter. If no parameter is found,
returns null.
Allows a caller to get the navigation parameter corresponding
to the Intent parameter.
The type of the retrieved parameter.
The
of the navigated page.
The navigation parameter casted to the proper type.
If no parameter is found, returns default(T).
The key corresponding to the currently displayed page.