2013-07-05 66 views
3

我有這個奇怪的問題。我所擁有的是我的XAML中的單個文本框,綁定到Person類。當我在Person類中實現iNotifyPropertyChanged時,Visual Studio XAML設計器崩潰,如果我只是運行該項目,我會得到StackOverflow異常。爲簡單的Person類實現iNotifyPropertyChanged會導致VisualStudio XAML設計器崩潰

當我刪除iNotifyPropertyChanged一切工作正常和文本框被綁定到Person類的名字字段。

這是我的XAML,沒有什麼特別的,只是一個數據綁定文本框

<Window x:Class="DataBinding_WithClass.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525" 
     xmlns:c="clr-namespace:DataBinding_WithClass"> 
    <Grid x:Name="myGrid" > 
     <Grid.Resources> 
      <c:Person x:Key="MyPerson" />    
     </Grid.Resources> 
     <Grid.DataContext> 
      <Binding Source="{StaticResource MyPerson}"/> 
     </Grid.DataContext> 
     <TextBox Text="{Binding FirstName}" Width="150px"/> 

    </Grid> 
</Window> 

這是我的Person類,在同一個項目:

public class Person: INotifyPropertyChanged 
    { 

     public string FirstName 
     { 
      get 
      { return FirstName; } 
      set 
      { 
       FirstName = value; 
       OnPropertyChanged("FirstName"); 
      } 
     }    
     public event PropertyChangedEventHandler PropertyChanged; 

     // Create the OnPropertyChanged method to raise the event 
     protected void OnPropertyChanged(string name) 
     { 
      PropertyChangedEventHandler handler = PropertyChanged; 
      if (handler != null) 
      { 
       handler(this, new PropertyChangedEventArgs(name)); 
      } 
     } 

    } 

我已經試過

重啓視覺Studio 2012(在Windows 7 Home Premium 64Bit上運行)

開始新的空白項目 - 同樣的問題

它太奇怪了,沒有INotifyPropertyChanged的一切都很好,但後來我的文本框不會得到更新爲名字我* *一流的變化....

你遇到過這個問題嗎?

回答

6

您實施的課程不當。你需要一個支持字段:

private string firstName; 
public string FirstName 
{ 
    get { return this.firstName; } 
    set 
    { 
     if(this.firstName != value) 
     { 
      this.firstName = value; // Set field 
      OnPropertyChanged("FirstName"); 
     } 
    } 
} 

現在,你的getter越來越本身,以及設置器的屬性本身,這兩者都會導致StackOverflowException

+0

這就像魔法....現在我可以睡得安穩今晚!留言Merci –

相關問題