It looks like you're calling a method in your class that is meant to handle a Dependency Property change. Instead, you need to raise the INotifyPropertyChanged.PropertyChanged
event:
PropertyChanged(this, new PropertyChangedEventArgs("ImFinished"));
Note that typically you will write a helper method for this in your base view-model class, which looks something like this:
protected void RaisePropertyChanged(string propertyName)
{
var evt = PropertyChanged; // create local copy in case the reference is replaced
if (evt != null) // check if there are any subscribers
evt (this, new PropertyChangedEventArgs(propertyName));
}
That way you can use simply RaisePropertyChanged("ImFinished")
.
One final note: C# version 5 has a new attribute CallerMemberName
which allows the RaisePropertyChanged
method to get the calling property's name:
protected void RaisePropertyChanged([CallerMemberName]string propertyName = null)
{
var evt = PropertyChanged; // create local copy in case the reference is replaced
if (evt != null) // check if there are any subscribers
evt (this, new PropertyChangedEventArgs(propertyName));
}
This saves you from the use of magic strings to specify the property name -- just call RaisePropertyChanged()
from the property setter.