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.