2011-07-12 21 views
0

我用的xamDataTree在我的應用程序,我想的xamDataTree運行時節點添加到樹。添加一個節點的xamDataTree的xamDataTree運行時和更新UI

dispalying的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); 

時。我想要添加一個節點。

Product m_product = new Product(); 
....to do something on m_product..... 
m_DataUtil.AddProduct(m_product); 
m_XamDataTree.UpdateLayout(); 

我不明白爲什麼樹不顯示新添加的節點。因爲我將它添加到其數據源對象,我認爲這應該工作。

可以在任何一個可以幫助我?

在此先感謝!

回答

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(); 

這工作,希望此解決方案可以幫助尋找相同功能的人。

+0

我只是綁定的ItemsSource到一個ObservableCollection。當您添加或刪除集合中的元素時,XamDataTree會自動更新自身,而不必除ObservableCollection中的Add()或Remove()之外的任何操作。 – MetalMikester

0

最好的解決辦法是結合具有改變的通知,如一個ObservableCollection,這樣當您更改,他們將在的xamDataTree自動反映在該集合的集合。如果您綁定的是沒有更改通知的集合,那麼您應該在論壇上或通過支持案例將問題提交給Infragistics。以下頁面有兩個鏈接: http://www.infragistics.com/support/get-help.aspx

相關問題