我正在创建一个有Grid的Windows应用程序。 网格的数据源是类的对象。 网格有两个波段。 如Band1上的下图所示,有一个名为Templates的列。 它的值为1到10。 要求是基于模板字段中的选定值,Band2必须没有行。 例如如果用户在模板字段中选择2,则Band2必须有两行。 作为运行时进程,必须在运行时刷新Grid。
在下面的情况下,如果模板字段中的值从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();
}
我在这里缺少什么?
答案 0 :(得分:1)
您可以实现接口INotifyPropertyChanged
以及您可能会通知的一些其他属性。通过这种方式,ViewModel可以通知View(或反之亦然)有关已经进行的任何更改。因此,您可以轻松控制所有3个DataGrids的内容。
有关详情,请参阅INotifyPropertyChanged。有很多文章可以帮助你存档。