2011-11-28 25 views

回答

1

新的數據源對象設置爲的UltraGrid的DataSource屬性後,你可以驗證的數量,如:

ultraGrid1.DisplayLayout.Bands.Count

希望這是你在找什麼。

+0

謝謝,但我不明白,在所有我從該屬性的期望。作爲DataSource,我設置了一個IList ,其中包含一個對象。此對象有三個孩子,也屬於類型Stoff,屬性爲IList 。 'DataSource = myList'和一個InitializeLayout事件處理程序之間的某處'DisplayLayout.Band.Count'跳到100 ...任何想法? – Andreas

+0

我會發佈一個screendump當我fugre如何.. – Andreas

+0

在我看來,你的IList 是自相關。因此,一旦將其設置爲DataSource,Bands計數將從0增加到Bands的最大數量--100。UltraGrid將顯示來自IList對象的相同層次結構。您可以將最大波段深度限制爲所需的數字。最合適的做法是在InitializeLayout事件中設置以下代碼行:e.Layout.MaxBandDepth = 8;這樣做UltraGrid將爲您創建僅此數量的樂隊。 –

0

嘗試使用的PropertyChanged事件的基類UltraControlBase的:

public void Form1() 
{ 
    InitializeComponents(); 
    ultraWinGrid.PropertyChanged += new Infragistics.Win.PropertyChangedEventHandler(ultraWinGrid_PropertyChanged); 
} 
void ultraWinGrid_PropertyChanged(object sender, Infragistics.Win.PropertyChangedEventArgs e) 
{ 
    Infragistics.Shared.PropChangeInfo pinfo = e.ChangeInfo; 
    try 
    { 
     // moving through the trigger stack 
     while (pinfo!=null) 
     { 
      if (Equals(pinfo.PropId, Infragistics.Win.UltraWinGrid.PropertyIds.DataSource)) 
      { 
       int newBandCount = this.ultraWinGrid.DisplayLayout.Bands.Count; 
       /// your code here 
      } 
      pinfo=pinfo.Trigger; 
     } 
    } 
    catch 
    { 

    } 
} 
+0

感謝您的回覆,但問題依然存在。見上面的評論和screendump。 – Andreas

+0

Bands.Count = 100表示​​網格現在有100個頻段總數,包括底層頻段。數據源中有多少項?它是分層的嗎?它看起來像UltraGrid爲Stoff對象中的每個孩子創建單獨的樂隊。 –

+0

嗨。最高級別的數據源中只有一個(現在)是'Stoff'。然而,Stoff對象包含一個列表 - 包含更多Stoff對象的'IList SubStoffs',即2.波段,它反過來可以在其列表中包含更多的Stoff對象,等等上。似乎UltraGrid不斷爲每個對象中的每個列表創建樂隊,直到達到100個樂隊。但是爲什麼當網格中的頻帶中的Stoff對象有'SubStoffs = null'?我如何告訴UltraGrid:_hey - 當列表爲空時,不要創建更多的樂隊!_? – Andreas

相關問題