Explain why the method works so crooked add to the collection and display DataGrid.Ispolzuyu binding in XAML.
<Window x:Class="bild.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:bild"
Title="MainWindow" Height="519" Width="525">
<Window.Resources>
<sys:ViewModel x:Key="DataSource"/>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding Source={StaticResource DataSource}, Path=Persons}"
DisplayMemberPath="Name"
HorizontalAlignment="Left" Margin="49,21,0,201" Name="listBox1" Width="425" />
<Grid DataContext="{Binding Source={StaticResource DataSource}}" Height="149" HorizontalAlignment="Left" Margin="49,134,0,0" Name="grid1" VerticalAlignment="Top" Width="425">
<DataGrid
ItemsSource="{Binding Source={StaticResource DataSource}, Path=Persons}"
AutoGenerateColumns="False" Height="143" HorizontalAlignment="Left" Margin="36,0,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="383" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Age}" Header="Age" ></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="296,290,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace bild
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
ViewModel r = new ViewModel();
r.ad();
dataGrid1.ItemsSource = r.Persons;
}
}
public class ViewModel
{
public ViewModel()
{
this.Persons = new ObservableCollection<Person>();
this.Persons.Add(new Person("Ivan", 23));
this.Persons.Add(new Person("Stefan", 34));
this.Persons.Add(new Person("Maria", 16));
this.Persons.Add(new Person("Michael", 78));
}
public void ad()
{
this.Persons = new ObservableCollection<Person>();
this.Persons.Add(new Person("Maria", 16));
this.Persons.Add(new Person("Michael", 78));
}
public ObservableCollection<Person> Persons
{
get;
set;
}
}
public class Person
{
public Person(string name, int age)
{
this.Name = name;
this.Age = age;
}
public string Name
{
get;
set;
}
public int Age
{
get;
set;
}
}
}