在繼承的UltraGrid中,我想知道在網格包含base.DataSource
的新值後,網格包含多少個帶。我如何找到這個數字?Infragistics UltraGrid(9.2)在設置DataSource後計算帶寬
感謝
-A-
/*****增加screendump *****/
(代碼不是我的財產,所以我已經炒遠一些可能的商業祕密)
在繼承的UltraGrid中,我想知道在網格包含base.DataSource
的新值後,網格包含多少個帶。我如何找到這個數字?Infragistics UltraGrid(9.2)在設置DataSource後計算帶寬
感謝
-A-
/*****增加screendump *****/
(代碼不是我的財產,所以我已經炒遠一些可能的商業祕密)
新的數據源對象設置爲的UltraGrid的DataSource屬性後,你可以驗證的數量,如:
ultraGrid1.DisplayLayout.Bands.Count
希望這是你在找什麼。
嘗試使用的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
{
}
}
感謝您的回覆,但問題依然存在。見上面的評論和screendump。 – Andreas
Bands.Count = 100表示網格現在有100個頻段總數,包括底層頻段。數據源中有多少項?它是分層的嗎?它看起來像UltraGrid爲Stoff對象中的每個孩子創建單獨的樂隊。 –
嗨。最高級別的數據源中只有一個(現在)是'Stoff'。然而,Stoff對象包含一個列表 - 包含更多Stoff對象的'IList
謝謝,但我不明白,在所有我從該屬性的期望。作爲DataSource,我設置了一個IList,其中包含一個對象。此對象有三個孩子,也屬於類型Stoff,屬性爲IList 。 'DataSource = myList'和一個InitializeLayout事件處理程序之間的某處'DisplayLayout.Band.Count'跳到100 ...任何想法? –
Andreas
我會發佈一個screendump當我fugre如何.. – Andreas
在我看來,你的IList是自相關。因此,一旦將其設置爲DataSource,Bands計數將從0增加到Bands的最大數量--100。UltraGrid將顯示來自IList對象的相同層次結構。您可以將最大波段深度限制爲所需的數字。最合適的做法是在InitializeLayout事件中設置以下代碼行:e.Layout.MaxBandDepth = 8;這樣做UltraGrid將爲您創建僅此數量的樂隊。 –