Как я понимаю, атрибут Bindable должен добавить свойство под (DataBindings) для текущего элемента управления.
Чтобы устранить проблему, связанную с тем, что OverlayColor не обновляется в привязке, необходимо реализовать интерфейс INotifyPropertyChanged для объекта, к которому вы привязываете. При изменении связанного объекта вы должны вызвать событие NotifyPropertyChanged.
В приведенном ниже примере я создал класс данных, который я использую для привязки и вызова метода ChangeColor () для изменения цвета.
public class Data : INotifyPropertyChanged
{
Color overlayColor = Color.Teal;
public event PropertyChangedEventHandler PropertyChanged;
public Data()
{
}
public Color OverlayColor
{
get
{
return overlayColor;
}
set
{
overlayColor = value;
NotifyPropertyChanged( "OverlayColor" );
}
}
public void ChangeColor()
{
if ( OverlayColor != Color.Tomato )
OverlayColor = Color.Tomato;
else
OverlayColor = Color.DarkCyan;
}
private void NotifyPropertyChanged( string propertyName )
{
if ( PropertyChanged != null )
PropertyChanged( this, new PropertyChangedEventArgs( propertyName ) );
}
}