GridView綁定不起作用。你能檢查我缺少的東西嗎? 爲了您的便利,我發佈了我的所有代碼。 這個測試代碼的目的是,如果我點擊添加按鈕,人物類將被添加到gridview。GridView綁定不起作用。我錯過了什麼?
低於C#代碼...
public partial class MainWindow : Window
{
List<Person> persons;
public MainWindow()
{
InitializeComponent();
persons = new List<Person>() { new Person() {Name="A", Age=20},
new Person() {Name="B", Age=30}};
lstView.ItemsSource = persons;
}
private void Add_Click(object sender, RoutedEventArgs e)
{
persons.Add(new Person { Name = tbName.Text, Age = Int32.Parse(tbAge.Text) });
}
}
public class Person : INotifyPropertyChanged
{
private string name;
public string Name
{
get { return name; }
set
{
name = value;
OnPropertyChanged("Name");
}
}
private int age;
public int Age
{
get { return age; }
set
{
age = value;
OnPropertyChanged("Age");
}
}
public event PropertyChangedEventHandler PropertyChanged;
void OnPropertyChanged(string name)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
和XAML代碼..
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Width="525" Height="150">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<TextBlock Grid.Column="0">Name</TextBlock>
<TextBox Grid.Column="1" x:Name="tbName"></TextBox>
<TextBlock Grid.Column="0" Grid.Row="1">Age</TextBlock>
<TextBox Grid.Column="1" Grid.Row="1" x:Name="tbAge"></TextBox>
<Button Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Click="Add_Click"> Add </Button>
<ListView Grid.Column="2" Grid.RowSpan="4" x:Name="lstView">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
謝謝。我已經知道了。但是如果我使用INotifyPropertyChanged讓人觀察,它應該可以工作。我錯了嗎 ? – myoldgrandpa
INotifyPropertyChanged將通知您有關特定人員的更改。當有人將新人添加到收藏中時,您真正想要的是要得到通知。 –