2011-01-05 3 views
1

im mit der Silverlight-CheckBox und Radiobutton zu arbeiten, und hat das folgende Szenario:Silverlight ToggleButton überprüfte Ereignis ausgelöst, bevor Bindung aktualisiert wird? Fehler?

Datacontext:

public class ViewModel : INotifyPropertyChanged 
{ 
    bool isChecked; 

    public bool IsChecked 
    { 
     get { return isChecked; } 
     set 
     { 
      isChecked = value; 
      InvokePropertyChanged("IsChecked"); 
     } 
    } 

    public void OnCheckBoxChecked() 
    { 
     // This function is run when the CheckBox Checked event triggers 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 

    void InvokePropertyChanged(string propertyName) 
    { 
     if (PropertyChanged != null) 
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
    } 
} 

Ausblick:

<UserControl x:Class="KSLog.Frontend.Features.CaseOverview.Views.CheckBoxView" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Grid x:Name="LayoutRoot" Background="White"> 
     <CheckBox IsChecked="{Binding IsChecked, Mode=TwoWay}" Checked="HandleInViewModel"/> 
    </Grid> 
</UserControl> 

Wenn Sie das Kontrollkästchen klicken, ' ViewModel.OnCheckBoxChecked 'wird ausgeführt, bevor' ViewModel.IsChecked 'über die Bindung aktualisiert wird. Obwohl 'CheckBox.IsChecked' aktualisiert wurde.

Ist das ein Fehler oder eine Designentscheidung? Es scheint mir ein Fehler zu sein! Sonst hätte das Ereignis Checking genannt werden sollen. :)

Hat jemand irgendwelche Gedanken darüber, warum das der Fall ist?

Antwort

Verwandte Themen