2014-09-03 24 views
1

假設我有以下的ListView:的ListView - ListViewItem的數據綁定到一個對象

<ListView Name="listView"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="IsTrue" DisplayMemberBinding="{Binding Path=IsTrue}"/> 
      <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=name}" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

而下面的測試類的我要綁定:

public class Test 
{ 
    public Test(Boolean IsTrue, string name) 
    { 
     this.IsTrue = IsTrue; 
     this.name = name; 
    } 

    public Boolean IsTrue { get; set; } 
    public string name { get; private set; } 
} 

下面是我用添加的命令ListViewItem:

Test a = new Test(false, "a"); 
listView.Items.Add(a); 

現在,當我嘗試更改一個對象IsTrue值ListView上的IsTrue值將不會日期。爲什麼如此?

回答

2
public class Test : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 

    protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) 
    { 
     var e = PropertyChanged; 
     if (e != null) 
      e(this, args); 
    } 

    private bool isTrue; 
    public Boolean IsTrue 
    { 
     get { return isTrue; } 
     set 
     { 
      if (isTrue == value) 
       return; 
      isTrue = value; 
      OnPropertyChanged(new PropertyChangedEventArgs("IsTrue")); 
     } 
    } 

    public string Name { get; private set; } 

    public Test(Boolean isTrue, string name) 
    { 
     this.isTrue = isTrue; 
     Name = name; 
    } 
} 
相關問題