Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
刷新Silverlight数据网格时出现问题_Silverlight_Datagrid - Fatal编程技术网

刷新Silverlight数据网格时出现问题

刷新Silverlight数据网格时出现问题,silverlight,datagrid,Silverlight,Datagrid,我在使用Silverlight数据网格和可观察的集合时遇到问题。我已经装箱了一个Silverlight数据网格,填充了一个来自WCF RIA服务的可观察集合,并将一个集合绑定到网格。它第一次工作正常,但是当我更改项目源内容时,数据不会在网格中刷新。当我双击datagrid单元格时,将显示内容。我可能缺少一些基本属性设置。有人能帮忙吗 示例代码: App.BPIContext.Load(App.BPIContext.GetWellFieldListValuesQuery()).Completed

我在使用Silverlight数据网格和可观察的集合时遇到问题。我已经装箱了一个Silverlight数据网格,填充了一个来自WCF RIA服务的可观察集合,并将一个集合绑定到网格。它第一次工作正常,但是当我更改项目源内容时,数据不会在网格中刷新。当我双击datagrid单元格时,将显示内容。我可能缺少一些基本属性设置。有人能帮忙吗

示例代码:

 App.BPIContext.Load(App.BPIContext.GetWellFieldListValuesQuery()).Completed += DataSource_WellFieldDataListValueLoadComplete;


ObservableCollection<ScheduleWellCustomFields> _userWellCustomFields = new ObservableCollection<ScheduleWellCustomFields>();

    void DataSource_WellCustomFieldsLoadComplete(object sender, EventArgs e)
    {
        _userWellCustomFields.Clear();
        App.BPIContext.ScheduleWellCustomFields.ToList().ForEach(c => _userWellCustomFields.Add(c));
        this.dtGridDrillingEngineer.ItemsSource = _userWellCustomFields;
    }
App.BPIContext.Load(App.BPIContext.GetWellFieldListValuesQuery()).Completed+=DataSource\u WellFieldDataListValueLoadComplete;
ObservableCollection_userWellCustomFields=新的ObservableCollection();
无效数据源\u WellCustomFieldsLoadComplete(对象发送方,事件参数e)
{
_userWellCustomFields.Clear();
App.BPIContext.ScheduleWellCustomFields.ToList().ForEach(c=>\u userWellCustomFields.Add(c));
this.dtGridDrillingEngineer.ItemsSource=\u userWellCustomFields;
}

尝试添加
this.dtGridDrillingEngineer.ItemsSource=null
before
his.dtGridDrillingEngineer.ItemsSource=\u userWellCustomFields

获取绑定对象并强制刷新:

        var bindingSource = TheDataGrid.GetBindingExpression(DataGrid.ItemsSourceProperty);
        bindingSource.UpdateSource();

您是否仅更改了ObservableCollection的内容(即添加、删除)或在datagrid上设置了ItemsSource属性?也许你会期望你的数据发生变化。确保在这种情况下抛出PropertyChanged。我同意Joachim Kerschbaumer的观点,在ScheduleWellCustomFields的属性中设置了NotifyPropertyChanged?我的问题是控件在最初使用时没有重新绘制。@这不是问题所在