У меня есть DataGrid, привязанный к DomainDataSource:
<sdk:DataGrid AutoGenerateColumns="False" Height="Auto"
ItemsSource="{Binding ElementName=mailboxDomainDataSource, Path=Data,Mode=TwoWay}"
Name="mailboxHeaderDataGrid"....>...</sdk>
У меня также есть кнопка добавления, чтобы добавить новую строку:
private void addMailboxButton_Click(object sender, RoutedEventArgs e)
{
Mailbox m = new Mailbox();
InboxNotifierDomainContext context = (InboxNotifierDomainContext)mailboxDomainDataSource.DomainContext;
((InboxNotifierDomainContext)mailboxDomainDataSource.DomainContext).Mailboxes.Add(m);
if (!mailboxDomainDataSource.DomainContext.IsSubmitting) if (mailboxDomainDataSource.HasChanges) mailboxDomainDataSource.SubmitChanges();
mailboxHeaderDataGrid.ItemsSource = ((InboxNotifierDomainContext)mailboxDomainDataSource.DomainContext).Mailboxes;
foreach (Mailbox m1 in ((InboxNotifierDomainContext)mailboxDomainDataSource.DomainContext).Mailboxes)
{
MessageBox.Show(m1.MailboxID + '-' + m1.MailBox1);
}
}
Теперь, когда я перебираю DomainContext.Mailboxes, как в конце функции, новый почтовый ящик существует.
Когда я просматриваю свою базу данных, новый почтовый ящик существует.
Если я обновлю страницу, новый почтовый ящик появится в DataGrid.
Однако , когда я перебираю ItemSource, новый почтовый ящик не появляется (не должен ли он совпадать с DomainContext.Mailboxes, поскольку я установил их равными?) И новый почтовый ящик не отображается в сетке.
Любая помощь была бы замечательной.
Заранее спасибо!