// Copyright (c) The Avalonia Project. All rights reserved. // Licensed under the MIT license. See licence.md file in the project root for full license information. using System; using Avalonia.Data; namespace Avalonia { /// /// Interface for getting/setting values on an object. /// public interface IAvaloniaObject { /// /// Raised when a value changes on this object. /// event EventHandler PropertyChanged; /// /// Raised when an inheritable value changes on this object. /// event EventHandler InheritablePropertyChanged; /// /// Gets a value. /// /// The property. /// The value. object GetValue(AvaloniaProperty property); /// /// Gets a value. /// /// The type of the property. /// The property. /// The value. T GetValue(AvaloniaProperty property); /// /// Checks whether a is animating. /// /// The property. /// True if the property is animating, otherwise false. bool IsAnimating(AvaloniaProperty property); /// /// Checks whether a is set on this object. /// /// The property. /// True if the property is set, otherwise false. bool IsSet(AvaloniaProperty property); /// /// Sets a value. /// /// The property. /// The value. /// The priority of the value. void SetValue( AvaloniaProperty property, object value, BindingPriority priority = BindingPriority.LocalValue); /// /// Sets a value. /// /// The type of the property. /// The property. /// The value. /// The priority of the value. void SetValue( AvaloniaProperty property, T value, BindingPriority priority = BindingPriority.LocalValue); /// /// Binds a to an observable. /// /// The property. /// The observable. /// The priority of the binding. /// /// A disposable which can be used to terminate the binding. /// IDisposable Bind( AvaloniaProperty property, IObservable source, BindingPriority priority = BindingPriority.LocalValue); /// /// Binds a to an observable. /// /// The type of the property. /// The property. /// The observable. /// The priority of the binding. /// /// A disposable which can be used to terminate the binding. /// IDisposable Bind( AvaloniaProperty property, IObservable source, BindingPriority priority = BindingPriority.LocalValue); } }