CXTPPropertyGrid * pPropertyGrid = ...;//前面建立好的
CXTPPropertyGridItem * pItemNode = pPropertyGrid->AddCategory("Node Name");;
CPropertyGrid_ItemData * pItemData = new CPropertyGrid_ItemData;
//自定义类, 里面有数据指针. pItemData中包含数据和显示的处理.
//把数据指针赋值进pItemData
//...
pItemNode->SetItemData((DWORD_PTR)pItemData);//把数据和展现联系在一起
//继续添加此节点的多个子节点, 子节点也有对应的数据指针.
现在遇到的问题是, 当编辑显示子节点后, 数据发生了变化。比如pItemData下的子节点删除了。
现在删除pItemNode下的所有子节点, 对这一部分数据重新建立子字节,绑定新的数据指针.
把数据重新SetItemData后,再编辑pItemNode节点时报错。
很明显的知道是显示节点对应的数据指针无效了,但是查过很久, 还没查出是哪里出错.
把属性格点显示数据和实际数据进行绑定的做法,使显示更新很快.
不用再重新从根节点重新装入数据.可以只更新变化了的数据. 如果没有删除节点的操作, 那只更新显示节点就可以.
稍后整理.