WPF DataGrid привязка не работает - PullRequest
1 голос
/ 24 сентября 2010

Я не могу заставить привязку 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

1 Ответ

3 голосов
/ 25 сентября 2010

Для привязки ItemsSource необходимо задать для Path, а не для Source, значение persons.Если просто указать {Binding persons}, то получится (путь - это стандартное свойство разметки) или явно {Binding Path=persons}DataContext всегда наследуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...