バージョン

SynchronizeCurrencyManager プロパティ

コントロールがデータ バインドされている場合に、DataSource プロパティによって参照されるデータ ソースに関連付けられた CurrencyManager を ActiveNode と同期させるかどうかを取得または設定します。
シンタックス
'宣言
 
Public Property SynchronizeCurrencyManager As Boolean
public bool SynchronizeCurrencyManager {get; set;}
解説

SynchronizeCurrencyManager をTrueに設定すると、ActiveNodeがバインドノードに変更されたときに必ず CurrencyManager の位置との同期化が試みられます。

CurrencyManager の位置設定には時間がかかることがあります。データのレベル数が多い場合は SynchronizeCurrencyManager を True に設定しないことを強くお勧めします。データ構造の階層が 5~8 レベルを超える場合 (またはデータ構造が再帰的な場合)、同期化が原因でパフォーマンスの問題が発生することがあります。

使用例
Imports Infragistics.Win
Imports Infragistics.Win.Layout
Imports Infragistics.Win.UltraWinTree

    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
        '	Get the DataSet
        Dim dataSet As DataSet = Me.GetData()

        '	Set 'AutoGenerateColumnSets' to true so that UltraTreeCOlumnSets are automatically generated
        Me.ultraTree1.ColumnSettings.AutoGenerateColumnSets = True

        '	Set 'SynchronizeCurrencyManager' to false to optimize performance
        Me.ultraTree1.SynchronizeCurrencyManager = False

        '	Set 'ViewStyle' to OutlookExpress for a relational display
        Me.ultraTree1.ViewStyle = ViewStyle.OutlookExpress

        '	Set 'AutoFitColumns' to true to automatically fit all columns
        Me.ultraTree1.ColumnSettings.AutoFitColumns = AutoFitColumns.ResizeAllColumns

        '	Set DataSource/DataMember to bind the UltraTree
        Me.ultraTree1.DataSource = DataSet
        Me.ultraTree1.DataMember = "TVSeries"
    End Sub

    Private Function GetData() As DataSet
        Dim dataSet As DataSet = New DataSet()

        Dim dataTableSeries As DataTable = New DataTable("TVSeries")

        dataTableSeries.Columns.Add("RecordID", GetType(Integer))
        dataTableSeries.Columns.Add("Name", GetType(String))
        dataTableSeries.Columns.Add("Network", GetType(String))
        dataTableSeries.Columns.Add("PilotDate", GetType(DateTime))

        dataTableSeries.Rows.Add(New Object() {0, "Happy Days", "ABC", New DateTime(1974, 1, 15)})
        dataTableSeries.Rows.Add(New Object() {1, "Diff'rent Strokes", "NBC", New DateTime(1978, 11, 3)})
        dataTableSeries.Rows.Add(New Object() {2, "All In The Family", "CBS", New DateTime(1971, 1, 12)})


        Dim dataTableSpinoffs As DataTable = New DataTable("Spinoffs")

        dataTableSpinoffs.Columns.Add("RecordID", GetType(Integer))
        dataTableSpinoffs.Columns.Add("ParentRecordID", GetType(Integer))
        dataTableSpinoffs.Columns.Add("Name", GetType(String))
        dataTableSpinoffs.Columns.Add("Network", GetType(String))
        dataTableSpinoffs.Columns.Add("PilotDate", GetType(DateTime))

        dataTableSpinoffs.Rows.Add(New Object() {3, 0, "Blansky's Beauties", "ABC", New DateTime(1977, 2, 12)})
        dataTableSpinoffs.Rows.Add(New Object() {4, 0, "Mork And Mindy", "ABC", New DateTime(1978, 2, 28)})
        dataTableSpinoffs.Rows.Add(New Object() {5, 0, "Laverne And Shirley", "ABC", New DateTime(1979, 9, 11)})
        dataTableSpinoffs.Rows.Add(New Object() {6, 0, "Joanie Loves Chachi", "ABC", New DateTime(1982, 3, 23)})

        dataTableSpinoffs.Rows.Add(New Object() {7, 1, "Hello, Larry", "NBC", New DateTime(1979, 1, 26)})
        dataTableSpinoffs.Rows.Add(New Object() {8, 1, "The Facts Of Life", "NBC", New DateTime(1979, 8, 24)})

        dataTableSpinoffs.Rows.Add(New Object() {9, 2, "Maude", "CBS", New DateTime(1972, 9, 12)})
        dataTableSpinoffs.Rows.Add(New Object() {10, 2, "The Jeffersons", "CBS", New DateTime(1975, 1, 18)})
        dataTableSpinoffs.Rows.Add(New Object() {11, 10, "Checking In", "CBS", New DateTime(1981, 4, 9)})
        dataTableSpinoffs.Rows.Add(New Object() {12, 9, "Good Times", "CBS", New DateTime(1974, 2, 8)})

        dataSet.Tables.Add(dataTableSeries)
        dataSet.Tables.Add(dataTableSpinoffs)

        dataSet.Relations.Add("SpinoffToSeries", dataTableSeries.Columns("RecordID"), dataTableSpinoffs.Columns("ParentRecordID"), False)
        dataSet.Relations.Add("SpinoffToSpinoff", dataTableSpinoffs.Columns("RecordID"), dataTableSpinoffs.Columns("ParentRecordID"), False)

        Return dataSet
    End Function

    Private Sub ultraTree1_InitializeDataNode(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinTree.InitializeDataNodeEventArgs) Handles ultraTree1.InitializeDataNode

        '	If the node is being initialized for the first time,
        '	set some appearance properties for root nodes
        If e.Reinitialize = False AndAlso e.Node.Level = 0 Then
            e.Node.Override.NodeAppearance.BackColor = Office2003Colors.ToolbarGradientLight
            e.Node.Override.NodeAppearance.BackColor2 = Office2003Colors.ToolbarGradientDark
            e.Node.Override.NodeAppearance.BackGradientStyle = GradientStyle.Vertical
            e.Node.Override.NodeAppearance.ForeColor = Color.DarkBlue
            e.Node.Override.NodeAppearance.FontData.Bold = DefaultableBoolean.True
        End If

        '	Expand each node as it is initialized
        e.Node.Expanded = True

    End Sub

    Private Sub ultraTree1_ColumnSetGenerated(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinTree.ColumnSetGeneratedEventArgs) Handles ultraTree1.ColumnSetGenerated
        Dim i As Integer
        For i = 0 To e.ColumnSet.Columns.Count - 1

            Dim column As UltraTreeNodeColumn = e.ColumnSet.Columns(i)

            '	Format the DateTime columns with the current culture's ShortDatePattern
            If column.DataType Is GetType(DateTime) Then
                column.Format = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
            End If

            '	Hide the integer columns, which represent record IDs
            If (column.DataType Is GetType(Integer)) Then
                column.Visible = False
            End If

            '	Set the MapToColumn for the relationship ColumnSets
            If e.ColumnSet.Key = "SpinoffToSeries" Or e.ColumnSet.Key = "SpinoffToSpinoff" Then
                column.MapToColumn = column.Key
            End If

            '	Set the Text property to something more descriptive
            If column.Key = "Name" Then

                column.Text = "TV Series / Spinoffs"

                '	Make the name column wider
                column.LayoutInfo.PreferredLabelSize = New Size(Me.ultraTree1.Width / 2, 0)

            ElseIf column.Key = "PilotDate" Then

                column.Text = "First Aired"

                '	Center align the text for the first aired date
                column.CellAppearance.TextHAlign = HAlign.Center

            ElseIf column.Key = "Network" Then
                '	Center align the text for the name of the network
                column.CellAppearance.TextHAlign = HAlign.Center
            End If
        Next i

    End Sub
using Infragistics.Win;
using Infragistics.Win.Layout;
using Infragistics.Win.UltraWinTree;
using System.Diagnostics;

		private void button1_Click(object sender, System.EventArgs e)
		{
			//	Get the DataSet
			DataSet dataSet = this.GetData();

			//	Set 'AutoGenerateColumnSets' to true so that UltraTreeCOlumnSets are automatically generated
			this.ultraTree1.ColumnSettings.AutoGenerateColumnSets = true;

			//	Set 'SynchronizeCurrencyManager' to false to optimize performance
			this.ultraTree1.SynchronizeCurrencyManager = false;

			//	Set 'ViewStyle' to OutlookExpress for a relational display
			this.ultraTree1.ViewStyle = ViewStyle.OutlookExpress;

			//	Set 'AutoFitColumns' to true to automatically fit all columns
			this.ultraTree1.ColumnSettings.AutoFitColumns = AutoFitColumns.ResizeAllColumns;

			//	Set DataSource/DataMember to bind the UltraTree
			this.ultraTree1.DataSource = dataSet;
			this.ultraTree1.DataMember = "TVSeries";
		}	

		private DataSet GetData()
		{
			DataSet dataSet = new DataSet();

			DataTable dataTableSeries = new DataTable( "TVSeries" );

			dataTableSeries.Columns.Add( "RecordID", typeof(int) );
			dataTableSeries.Columns.Add( "Name", typeof(string) );
			dataTableSeries.Columns.Add( "Network", typeof(string) );
			dataTableSeries.Columns.Add( "PilotDate", typeof(DateTime) );

			dataTableSeries.Rows.Add( new object[]{ 0, "Happy Days", "ABC", new DateTime( 1974, 1, 15 ) } );
			dataTableSeries.Rows.Add( new object[]{ 1, "Diff'rent Strokes", "NBC", new DateTime( 1978, 11, 3 ) } );
			dataTableSeries.Rows.Add( new object[]{ 2, "All In The Family", "CBS", new DateTime( 1971, 1, 12 ) } );


			DataTable dataTableSpinoffs = new DataTable( "Spinoffs" );

			dataTableSpinoffs.Columns.Add( "RecordID", typeof(int) );
			dataTableSpinoffs.Columns.Add( "ParentRecordID", typeof(int) );
			dataTableSpinoffs.Columns.Add( "Name", typeof(string) );
			dataTableSpinoffs.Columns.Add( "Network", typeof(string) );
			dataTableSpinoffs.Columns.Add( "PilotDate", typeof(DateTime) );

			dataTableSpinoffs.Rows.Add( new object[]{ 3, 0, "Blansky's Beauties", "ABC", new DateTime( 1977, 2, 12 ) } );
			dataTableSpinoffs.Rows.Add( new object[]{ 4, 0, "Mork And Mindy", "ABC", new DateTime( 1978, 2, 28 ) } );
			dataTableSpinoffs.Rows.Add( new object[]{ 5, 0, "Laverne And Shirley", "ABC", new DateTime( 1979, 9, 11 ) } );
			dataTableSpinoffs.Rows.Add( new object[]{ 6, 0, "Joanie Loves Chachi", "ABC", new DateTime( 1982, 3, 23 ) } );

			dataTableSpinoffs.Rows.Add( new object[]{ 7, 1, "Hello, Larry", "NBC", new DateTime( 1979, 1, 26 ) } );
			dataTableSpinoffs.Rows.Add( new object[]{ 8, 1, "The Facts Of Life", "NBC", new DateTime( 1979, 8, 24 ) } );

			dataTableSpinoffs.Rows.Add( new object[]{ 9, 2, "Maude", "CBS", new DateTime( 1972, 9, 12 ) } );
			dataTableSpinoffs.Rows.Add( new object[]{ 10, 2, "The Jeffersons", "CBS", new DateTime( 1975, 1, 18 ) } );
			dataTableSpinoffs.Rows.Add( new object[]{ 11, 10, "Checking In", "CBS", new DateTime( 1981, 4, 9 ) } );
			dataTableSpinoffs.Rows.Add( new object[]{ 12, 9, "Good Times", "CBS", new DateTime( 1974, 2, 8 ) } );

			dataSet.Tables.Add( dataTableSeries );
			dataSet.Tables.Add( dataTableSpinoffs );

			dataSet.Relations.Add( "SpinoffToSeries", dataTableSeries.Columns["RecordID"], dataTableSpinoffs.Columns["ParentRecordID"], false );
			dataSet.Relations.Add( "SpinoffToSpinoff", dataTableSpinoffs.Columns["RecordID"], dataTableSpinoffs.Columns["ParentRecordID"], false );

			return dataSet;
		}

		private void ultraTree1_InitializeDataNode(object sender, Infragistics.Win.UltraWinTree.InitializeDataNodeEventArgs e)
		{
			//	If the node is being initialized for the first time,
			//	set some appearance properties for root nodes
			if ( e.Reinitialize == false && e.Node.Level == 0 )
			{
				e.Node.Override.NodeAppearance.BackColor = Office2003Colors.ToolbarGradientLight;
				e.Node.Override.NodeAppearance.BackColor2 = Office2003Colors.ToolbarGradientDark;
				e.Node.Override.NodeAppearance.BackGradientStyle = GradientStyle.Vertical;				
				e.Node.Override.NodeAppearance.ForeColor = Color.DarkBlue;
				e.Node.Override.NodeAppearance.FontData.Bold = DefaultableBoolean.True;
			}

			//	Expand each node as it is initialized
			e.Node.Expanded = true;
		}

		private void ultraTree1_ColumnSetGenerated(object sender, Infragistics.Win.UltraWinTree.ColumnSetGeneratedEventArgs e)
		{			
			for ( int i = 0; i < e.ColumnSet.Columns.Count; i ++ )
			{
				UltraTreeNodeColumn column = e.ColumnSet.Columns[i];

				//	Format the DateTime columns with the current culture's ShortDatePattern
				if ( column.DataType == typeof(DateTime) )
					column.Format = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;

				//	Hide the integer columns, which represent record IDs
				if ( column.DataType == typeof(int) )
					column.Visible = false;

				//	Set the MapToColumn for the relationship ColumnSets
				if ( e.ColumnSet.Key == "SpinoffToSeries" || e.ColumnSet.Key == "SpinoffToSpinoff" )
					column.MapToColumn = column.Key;

				//	Set the Text property to something more descriptive
				if ( column.Key == "Name" )
				{
					column.Text = "TV Series / Spinoffs";

					//	Make the name column wider
					column.LayoutInfo.PreferredLabelSize = new Size( this.ultraTree1.Width / 2, 0 );
				}
				else
				if ( column.Key == "PilotDate" )
				{
					column.Text = "First Aired";

					//	Center align the text for the first aired date
					column.CellAppearance.TextHAlign = HAlign.Center;
				}
				else
				if ( column.Key == "Network" )
					//	Center align the text for the name of the network
					column.CellAppearance.TextHAlign = HAlign.Center;
			}

		}
参照