2010-10-17 29 views
1

我有不同数量的行和列的二维数据,必须将其显示给用户进行编辑。数据本身的格式本质上是由行列描述符列表来描述的,每行或每列都有一个标题文本。如何动态修改WPF网格的行和列定义?

我从Grid导出了一个控件,该控件具有行和列描述符的两个属性,并根据该信息构建网格行和列。如果用户动态添加或删除行或列,它还订阅两个描述符集合的列表更改事件以自行更新。

而这里出现问题 - 当我尝试修改网格的行或列定义时,我得到一个异常,告诉集合是只读的。所以我认为在网格创建并显示一次之后不可能修改定义。有任何想法吗?

只是在这种情况下它很重要 - 一切都是数据绑定的。有一个(动态的)表格集合,每个表格都包含自己的(动态)行和列定义以及为每个单元格输入的数据。

回答

1

我做了一个快速测试,我可以通过代码使用RowDefinitions和ColumnDefinitions集合,在运行时通过代码将没有问题的行和列添加到网格中。我不认为绑定与这个问题有任何关系。

如果另一方面你的意思是DataGrid,是的,这改变了很多东西。

+0

你是对的 - 收藏可以修改。我从修改后的描述符列表中收到了几个更改通知,并且第一个正确更新了行和列定义。第二个失败,因为现在集合被标记为只读。我不知道(也没有调查过)为什么它以这种方式工作,但是对于我的情况一切都很好 - 如果定义变为只读,因为所有必要的更改都是第一次完成,我什么也不做。在我的代码执行后的某个时刻,集合可以再次修改,并允许对网格进行进一步的修改。 – 2010-10-17 19:45:22