2010-09-21 65 views
0

我切換按鈕定義像這樣的XAML:WPF雙向綁定和更新的代碼隱藏

<ToggleButton IsChecked="{Binding DateFilter, ElementName=myUserControl, Mode=TwoWay}"/> 

和「DateFilter」這樣定義:

public Boolean DateFilter { get; set; } 

當我點擊肘節按鈕,'DateFilter'會相應更新。但是,如果我修改代碼中的'DateFilter',ToggleButton不會更新!
我該怎麼做?

+0

你DataFilter從INotifyPropertyChanged上升事件嗎? – 2010-09-21 11:53:18

回答

0
public MyClass : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged = delegate {}; 

    private Boolean _dateFilter; 

    public Boolean DateFilter 
    { 
     get { return _dateFilter; } 
     set 
     { 
      _dateFilter = value; 
      PropertyChanged(this, new PropertyChangedEventArgs("DateFilter"); 
     } 
    } 
} 

基本上做出PropertyChanged電話,只要你改變_dateFilter,或只是使用的setter,你會進行排序。將事件處理程序設置爲空委託可以避免空檢查。

+0

酷thx! 嗯,我可以,它可以更簡單! – Fred 2010-09-21 12:22:17

+0

將其放入Resharper模板 - 以下是一個:http://koder.wordpress.com/2010/03/25/resharper-inotifypropertychanged/ – Lunivore 2010-09-21 23:44:32

0

您需要爲myUserControl添加來自INotifyPropertyChanged的繼承,並使用「DateFilter」屬性名稱發送DateFilter setter事件PropertyChanged。