2010-09-24 3 views
0

Я не могу получить привязку DataGrid для работы в следующем примере ниже. Любые подсказки о том, что происходит?WPF DataGrid привязка не работает

namespace WPFTestApplication 
{ 
    /// <summary> 
    /// Interaction logic for Window1.xaml 
    /// </summary> 
    public partial class Window1 : Window 
    { 
     public class Person 
     { 
      public int age { get; set; } 
      public String Name { get; set; } 

      public Person(int age, String Name) 
      { 
       this.age = age; 
       this.Name = Name; 
      } 
     } 

     public class MegaObject 
     { 
      public IList<Person> persons { get; set; } 
      public MegaObject() 
      { 
       persons = new List<Person>(); 
       persons.Add(new Person(11, "A")); 
       persons.Add(new Person(12, "B")); 
       persons.Add(new Person(13, "C")); 
      } 
     } 


     public Window1() 
     { 
      InitializeComponent(); 
      MegaObject myobject= new MegaObject(); 
      DataContext = myobject; 
     } 
    } 
} 


<Grid> 
    <my:DataGrid 
        Name="dataGrid" 
        AutoGenerateColumns="False" 
        ItemsSource="{Binding Source=persons}" 
       > 
     <my:DataGrid.Columns> 

      <my:DataGridTextColumn Binding="{Binding Path=age, Mode=TwoWay}" > 
      </my:DataGridTextColumn> 

      <my:DataGridTextColumn Binding="{Binding Path=Name, Mode=TwoWay}" > 
      </my:DataGridTextColumn> 

     </my:DataGrid.Columns> 


    </my:DataGrid> 

</Grid> 

С уважением, MadSeb

ответ

2

ItemsSource связывания, должен иметь набор Path, а не источник, чтобы persons. Просто положить его как {Binding persons} сделал бы трюк (путь является свойством по умолчанию в разметке) или явно {Binding Path=persons}. DataContext всегда унаследован.

Смежные вопросы