2013-05-23 1 views
1

Je souhaite lier Border.BackgroundProperty en C#. La liaison fonctionne mais l'élément frontière n'est pas mis à jour lors du changement.Bind Border.BackgroundProperty en C#, numéro de mise à jour

UIElement (fb_CoonetionIndicator = Border):

  var indicatorElement = new InputElement(""); 
     indicatorElement.InputElementType = InputElementTypeEnum.Indicator; 
     // verified label binding 
     Binding indicatorBinding = new Binding("VerificationText"); 
     indicatorBinding.Source = ApplicationPersistantDataModel.Instance; 
     indicatorElement.local_indicatorlabel.SetBinding(Label.ContentProperty, indicatorBinding); 
     // backgroundcolor binding 
     Binding colorBinding = new Binding("VerificationColor"); 
     colorBinding.Source = ApplicationDynamicDataModel.Instance; 
     colorBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; 
     fb_ConnectionIndicator.fb_backGroundBorder.SetBinding(Border.BackgroundProperty, colorBinding); 
     fb_ConnectionIndicator.AddElementToStackPanel(indicatorElement); 

DataSource:

public sealed class ApplicationDynamicDataModel 
{ 
    private static ApplicationDynamicDataModel instance = new ApplicationDynamicDataModel(); 
    public static ApplicationDynamicDataModel Instance 
    { 
     get { return instance; } 
     set { instance = value; } 
    } 

    // verification indicator color 
    private SolidColorBrush _verificationColor = new SolidColorBrush(Colors.GreenYellow); 
    public SolidColorBrush VerificationColor 
    { 
     get { return _verificationColor; } 
     set 
     { 
      _verificationColor = value; 
      OnPropertyChanged("VerificationColor"); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
    [NotifyPropertyChangedInvocator] 
    protected void OnPropertyChanged(string propertyName) 
    { 
     PropertyChangedEventHandler handler = PropertyChanged; 
     if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); 
    } 
} 

Répondre

0

Votre déclaration de classe devrait avoir : INotifyPropertyChanged pour mettre en œuvre INotifyPropertyChanged

public sealed class ApplicationDynamicDataModel : INotifyPropertyChanged 

Si vous ne l'avez pas dans la déclaration, la liaison ne peut pas s'abonner à l'événement OnPropertyChanged.

+0

erreur négligente. Je vous remercie! – aDoubleSo