当XamDataTree运行并更新UI时,向XamDataTree添加节点

时间:2011-07-12 09:46:16

标签: c# infragistics

我在我的应用程序中使用了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();

我不明白为什么树不显示新添加的节点。因为我将它添加到它的数据源对象,我认为这应该有用。

任何人都可以帮助我吗?

提前感谢!

2 个答案:

答案 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