2011-04-11 53 views
0

有classha behine包含屬性'Int32計數'的xaml爲什麼我的綁定不起作用?

我想將某些TextBlock綁定到「計數」值 - 即TextBlock.Text將具有「計數」的值。

<TextBlock Text="{ Binding Path=Count }" /> 

而在XAML我添加到構造後面的代碼:

所以我在XAML中寫道

DataContext = this; 

但「計數」的每一個變化不改變TextBlock的文本。

'計數'

Int32 count; 
public Int32 Count 
{ 
     get 
     { 
      return count; 
     } 

     set 
     { 
      count = value; 
     } 

} 
+0

Count屬性的代碼是什麼?你是否試圖將窗口綁定到自己? – 2011-04-11 07:41:43

回答

4

地方INotifyPropertyChanged接口到類:

public class MainPage : INotifyPropertyChanged 
{ 

} 

然後執行:

public event PropertyChangedEventHandler PropertyChanged; 

protected void OnPropertyChanged(string propertyname) 
     { 
      var handler = PropertyChanged; 
      if (handler != null) 
       handler(this, new PropertyChangedEventArgs(propertyname)); 
     } 

這是什麼一樣,如果通知視圖提供機制的東西在你的datacontext已發生變化,你做它是這樣的:

public Int32 Count 
{ 
     get 
     { 
      return count; 
     } 

     set 
     { 
      count = value; 
      OnPropertyChanged("Count"); //This invokes the change 
     } 

} 

但是,當然,我建議你使用MVVM模式分離設計和代碼。這樣,您可以將propertychanged實現爲ViewModelBase類,然後爲每個ViewModel繼承該屬性。

0

的代碼,您應該確保您的DataContext實現INotifyPropertyChanged。然後,你必須正確地解除財產變更事件。