Я новичок в WPF. Теперь я пишу проект WPF с Entity Framework. Я могу добавлять и удалять элементы правильно на моем wpf; однако, после добавления или удаления элементов, мой datagrid все еще не обновлялся. Даже я использую ssEntities.SaveChanges(); ssEntities.Refresh(RefreshMode.StoreWins, ssEntities.User);
WPF datagrid не обновляет автоматически Entity Framework
Как я могу обновить свой datagrid автоматически с помощью функции обновления или другой функции?
XAML
<Window.Resources>
<CollectionViewSource x:Key="UserViewSource"
d:DesignSource="{d:DesignInstance my:User, CreateList=True}" />
</Window.Resources>
<DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Height="537"
HorizontalAlignment="Left" ItemsSource="{Binding}" Margin="12,12,0,0"
Name="UserDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected"
VerticalAlignment="Top" Width="300"
SelectedCellsChanged="UserDataGrid_SelectedCellsChanged">
<DataGrid.Columns>
<DataGridTextColumn x:Name="IDColumn" Binding="{Binding Path=ID}" Header="ID"
Width="80" IsReadOnly="True" />
<DataGridTextColumn x:Name="NameColumn" Binding="{Binding Path=Name}"
Header="Name" Width="80" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
CS
private void btnSave_Click(object sender, RoutedEventArgs e)
{
try
{
if (ActionHandler == "Add")
{
User user = new User();
user.ID = ID;
user.Name = Name;
ssEntities.User.AddObject(user);
}
ssEntities.SaveChanges();
ssEntities.Refresh(RefreshMode.StoreWins, ssEntities.User);
}
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}
Опубликуйте свой XAML и код. –
@HighCore Вот мой datagrid XAML и моя кнопка сохранения, спасибо. – CYB
1 - Я не вижу, где установлен ваш DataContext. 2 - Я не думаю, что это хорошая идея, чтобы полностью сменить пользовательский интерфейс и доступ к БД, вам лучше создать промежуточный объектный слой для хранения данных, которые должны отображаться в пользовательском интерфейсе. Для этого вам понадобится 'ObservableCollection'. Пожалуйста, не помещайте код доступа DB в обработчик события Click Button. –