在运行时更新DataGrid

时间:2014-04-21 08:37:17

标签: c# wpf visual-studio-2012 datagrid windows-applications

我正在创建一个有Grid的Windows应用程序。 网格的数据源是类的对象。 网格有两个波段。 如Band1上的下图所示,有一个名为Templates的列。 它的值为1到10。 要求是基于模板字段中的选定值,Band2必须没有行。 例如如果用户在模板字段中选择2,则Band2必须有两行。 作为运行时进程,必须在运行时刷新Grid。

enter image description here

在下面的情况下,如果模板字段中的值从2更改为3,则必须刷新打开的Band2以显示3行。 我写了一些代码,但它无法在运行时刷新网格。

 private void grdDataMapping_AfterCellUpdate(object sender, CellEventArgs e)
    {
 if (e.Cell.Column.Key.Equals("TemplateName"))
            {
                ValueList paramName = new ValueList();
                string templateName = e.Cell.Text;
                List<TemplateMapping> tempMappings = new List<TemplateMapping>();
                if (_dictTemplateNames.ContainsKey(templateName))
                {
                    for (int i = 0; i < templateName.Value; i++)
                        tempMappings.Add(new TemplateMapping());
                    mappingDetails.ListTemplateMapping = tempMappings;                       
                }
                grdDataMapping.Refresh();
            }

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您可以实现接口INotifyPropertyChanged以及您可能会通知的一些其他属性。通过这种方式,ViewModel可以通知View(或反之亦然)有关已经进行的任何更改。因此,您可以轻松控制所有3个DataGrids的内容。

有关详情,请参阅INotifyPropertyChanged。有很多文章可以帮助你存档。