我的代码当前在窗口中接收 WPF 树视图对象并检索其属性。所以伪代码会是这样的:
for each(Object ^item in m_objTreeView->Items)
{
// we only treat TreeViewItem elements here
if (item->GetType()->Equals(TreeViewItem::typeid)
|| item->GetType()->IsSubclassOf(TreeViewItem::typeid))
{
TreeViewItem ^treeViewItem = safe_cast<TreeViewItem^>(item);
// add treeView to the Sdk control
CTreeView::CTreeViewNode &sdkTreeViewNode = AddRootNode(*treeViewItem);
// Go through its items and sub items now
}
}
由于我拥有的树视图对象是数据绑定对象,因此每个项目都是 DataRowView 类型。我找到了一种将其转换为 TreeViewItem 的方法,如下所示:
TreeViewItem ^treeViewItem = safe_cast<TreeViewItem^>
(ItemContainerGenerator.ContainerFromItem(item));
但它没有像常规 TreeViewItem 那样的标题和其他属性,这是非常值得期待的。我的问题是,如果我们能够设法从 DataRowView 获取行和列值,是否可以通过我在这里编写的代码填充多列树视图?
注意:我仍在探索如何从 DataRowView 获取行和列文本或子复选框值。
如果有人也对这些有想法,那将不胜感激!