我在我的应用程序中使用了XamDataTree,我想在XamDataTree运行时向树中添加一个节点。
加载时
m_XamDataTree.ItemsSource = m_DataUtil.Data;
NodeLayout mylayout = new NodeLayout();
mylayout.Key = "FristLayout";
mylayout.TargetTypeName = "Category";
mylayout.DisplayMemberPath = "CategoryName";
NodeLayout mylayout2 = new NodeLayout();
mylayout2.Key = "SecondLayout";
mylayout2.TargetTypeName = "Product";
mylayout2.DisplayMemberPath = "FileName";
m_XamDataTree.GlobalNodeLayouts.Add(mylayout);
m_XamDataTree.GlobalNodeLayouts.Add(mylayout2);
在显示XamDataTree之后。我想添加一个节点。
Product m_product = new Product();
....to do something on m_product.....
m_DataUtil.AddProduct(m_product);
m_XamDataTree.UpdateLayout();
我不明白为什么树不显示新添加的节点。因为我将它添加到它的数据源对象,我认为这应该有用。
任何人都可以帮助我吗?
提前感谢!
答案 0 :(得分:1)
尝试了很多解决方案后,我发现该怎么做。看看代码;
//set the data provider null
m_DataUtil = null;
//reload data to data provider class
this.InitData();
//set xamdatatree data source
m_XamDataTree.ItemsSource = m_DataUtil.Data;
//then call this function
m_XamDataTree.UpdateLayout();
这很有效,希望这个解决方案可以帮助那些寻求相同功能的人。
答案 1 :(得分:0)
最好的解决方案是绑定到具有更改通知的集合,例如ObservableCollection,这样当您对集合进行更改时,它们将自动反映在XamDataTree中。如果您绑定到没有更改通知的集合,那么您应该在论坛上或通过支持案例将问题提交给Infragistics。以下页面包含两者的链接: http://www.infragistics.com/support/get-help.aspx