2011-07-12 25 views
0

私のアプリケーションでXamDataTreeを使用しましたが、XamDataTreeの実行中にツリーにノードを追加します。XamDataTreeを実行してUIを更新するときにノードをXamDataTreeに追加

XamDataTreeをdispalying後

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

ObservableCollectionにItemsSourceをバインドするだけです。コレクション内の要素を追加または削除すると、ObservableCollectionからAdd()またはRemove()以外の操作を行うことなく、XamDataTreeが自動的に更新されます。 – MetalMikester

0

ObservableCollectionなどの変更通知を持つコレクションにバインドするのが最適なソリューションです。コレクションを変更すると、自動的にXamDataTreeに反映されます。変更通知がないコレクションにバインドする場合は、フォーラムまたはサポートケースを通じてInfragisticsに問題を提出する必要があります。次のページには、両方のリンクがあります。 http://www.infragistics.com/support/get-help.aspx

関連する問題