刷新WPF Datagrid没有绑定到可观察集合?

时间:2016-07-06 12:16:29

标签: c# sql wpf linq datagrid

我正在使用带有Datagrid的LINQ to SQL并将数据绑定到自动生成的字段。通过LINQ提交更改时,数据更新正常。 我遇到的问题是我直接在数据库上运行SQL语句后似乎无法刷新更新的数据。数据库数据正确更新,关闭并重新启动应用程序,数据正确更新。

我试过了,

MyTable.Items.Refresh();

并且

private DatabaseDataContext sql = new DatabaseDataContext(
            Properties.Settings.Default.StaffConnectionString);

sql.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues);

用于将数据绑定到Datagrid列的XAML,Info_Data是Database表中自动生成的字段。

<DataGridTemplateColumn Header="Info" Width="*" SortMemberPath="Words">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock FontWeight="Light" Text="{Binding Path=Info_Data, UpdateSourceTrigger=PropertyChanged}" />
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>

从各方面来看,似乎我需要创建一个可观察的集合并将数据绑定到该集合并更新集合以刷新数据网格表。 有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用SqlDataAdapter和DataTable从数据库加载信息并绑定到DataGrid:

var da = new SqlDataAdapter("SELECT * FROM " + view, conn);
var dt = new DataTable();
da.Fill(dt);
var dg = new DataGrid();// Your DataGrid
dg.ItemsSource = dt.DefaultView;

更新时间:

dt.Rows.Clear();
da.Fill(dt);
dt.AcceptChanges();