WPF behaviors that update bindings or execute a callback method on a configurable interval.
You can toggle the timers at any time; or even bind the EnableTimer
property to another control, such as a CheckBox
.
Requires Microsoft's WPF Behaviors NuGet package:
To use the above package in XAML, add this namespace to your Window:
http://schemas.microsoft.com/xaml/behaviors
using XamlTimers;
xmlns:behavior="clr-namespace:XamlTimers;assembly=XamlTimers"
Properties that don't have default values are required!
Property | Type | Default Value | Description |
---|---|---|---|
EnableTimer |
bool |
true |
When true , the timer is enabled & the specified binding is updated every time the Interval has elapsed;When false , the timer is disabled & no updates occur. |
Interval |
double |
The timer interval, in milliseconds. | |
Property |
DependencyProperty |
Specifies the target property of the attached object to update the databinding on. This should be specified in the form "{x:Static <CONTROL>.<PROPERTYNAME>Property}" , where the <CONTROL> is the control that defines the property, not the control that inherits it.(i.e. Slider.Value => RangeBase.ValueProperty ) |
|
ThrowWhenPropertyIsNull |
bool |
true |
When true , an ArgumentNullException is thrown by the update method when Property is null ; when false , no exception is thrown and the binding update silently fails. |
ThrowWhenPropertyIsMissing |
bool |
true |
When true , an ArgumentNullException is thrown by the update method when Property doesn't exist on the attached object; when false , no exception is thrown and the binding update silently fails. |
Property | Default | Description |
---|---|---|
EnableTimer |
true |
When true , the timer is enabled & TimerCallback is called every time the Interval has elapsed;When false , the timer is disabled & TimerCallback is not called. |
Interval |
The timer interval, in milliseconds. (type double ) |
|
TimerCallback |
A callback delegate of type System.Timers.ElapsedEventHandler that will be invoked every time the timer is triggered. |
If you want to create your own timer class, you can inherit from the abstract base class with your own implementation.
See the source code for implementation details & examples.