我是WPF中的新成員。現在,我正在用Entity Framework編寫一個WPF項目。我可以在我的wpf上正確添加和刪除項目;但是,在添加或刪除項目後,我的數據網格仍未刷新。即使我使用ssEntities.SaveChanges(); ssEntities.Refresh(RefreshMode.StoreWins, ssEntities.User);
WPF 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和代碼。 – 2013-03-11 03:19:44
@HighCore這是我的datagrid XAML和我的保存按鈕,謝謝。 – CYB 2013-03-11 03:32:47
1 - 我沒有看到你的'DataContext'設置在哪裏。 2 - 我認爲不要將這樣的UI和數據庫訪問混爲一談,你最好創建一箇中間對象層來保存數據,以便在UI中顯示。你需要'ObservableCollection's。請不要將DB訪問代碼放在Button單擊事件處理程序中。 – 2013-03-11 03:34:48