Как обновить/ перезагрузить все элементы в WPF datagrid
Я извлекаю детали из базы данных sql и показываю их в datagrid, как показано ниже.
using (SqlConnection con = new SqlConnection(UserIDDataTableConnString)) { SqlCommand cmd = new SqlCommand("select * from TBL_TicketMngr where Status = 'Follow Up';", con); con.Open(); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable("TBL_TicketMngr"); sda.Fill(dt); DG_FollowUp.ItemsSource = dt.DefaultView; }
XAML для элемента управления DataGrid:
<DataGrid Name="DG_FollowUp" AutoGenerateColumns="False" SelectionMode="Single" SelectedIndex="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" Grid.Row="01" BorderBrush="Black" BorderThickness="0.5" LoadingRow="DG_FollowUp_LoadingRow" IsEnabled="True" IsReadOnly="True" AlternationCount="2" ><!--VirtualizingStackPanel.IsVirtualizing="True"--> <datagrid.columns> <DataGridTextColumn Binding="{Binding [TicketID/Subject]}" Header="TicketID/Subject" Width="300" CanUserSort="False"/> <DataGridTextColumn Binding="{Binding [AddDate]}" Header="Start Date" Width="90" CanUserSort="False"> <DataGridTextColumn Binding="{Binding [Status]}" Header="Status" Width="80" CanUserSort="False"> <DataGridTextColumn Binding="{Binding [OwnerShip]}" Header="Ownership" Width="130" CanUserSort="False"> <DataGridTextColumn Binding="{Binding [Comments]}" Header="Comments" Width="300" CanUserSort="False"> <DataGridTextColumn Binding="{Binding [SLA DATE]}" Header="SLA Date" Width="90" CanUserSort="False">
Когда пользователь вносит какие-либо изменения в БД, редактируя выбранную строку этой datagrid, datagrid должен быть заполнен недавними datatable.
Я могу получить правильный datatable, но когда он задается как Itemsource для datagrid, он не показывает недавний, а показывает более ранний.
Когда я закрываю приложение и перезапускаю его, оно показывает правильное.
Что я уже пробовал:
Я попробовал Дейтагрид.Предметы.Clear (); но я получаю ошибку " операция недопустима, пока используется ItemsSource. Доступ и изменение элементов с помощью ItemsControl.Вместо этого ItemsSource."
Я попробовал Дейтагрид.Items. refresh (); и Datagrid.UpdateLayout (), но ничего не работает.
Пожалуйста, дайте мне знать, если есть способ достичь этого.
Заранее спасибо
[no name]
DataBind itemsource таблицы данных.
VamsiPenta
Я попробовал, как показано ниже, но это не сработало.
XAMl: & lt;DataGrid Name=" DG_FollowUp " ItemSource={Binding}/>
.в CS: DG_FollowUp.Класс DataContext = ДТ.DefaultView;
но это не сработало.
публичный частичный класс MainWindow : MetroWindow, INotifyPropertyChanged
Я пробовал писать так, но даже тогда это не работало
[no name]
Должен ли я знать, что значит "не сработало"? Вы установили контекст данных? Вы создали свойство для привязки? Вы отладили свое приложение, чтобы выяснить, что означает "не работает"?
VamsiPenta
Когда я устанавливаю datacontext на него, он показывает пустую datgrid и в то же время я не получаю никаких ошибок во время отладки
[no name]
Тогда исправь свою привязку.
VamsiPenta
Вы имеете в виду привязки к каждому столбцу, как я уже упоминал в коде xaml? Если да, то он должен работать, потому что я получаю все значения в первый раз при загрузке приложения