Chciałbym, aby niektóre wiersze w Ultragrid były wyłączone w zależności od właściwości Boolean Sync w wierszu. Myślałem o dwóch różnych rozwiązaniach, ale żadne z nich się nie sprawdziło.Infragistics Ultragrid Jak mogę wyłączyć wiersz w zależności od właściwości
1) Odczytaj właściwość Sync do właściwości Aktywacja wiersza. czy to możliwe?
2) W zdarzeniu takim jak InitializeRow w siatce sprawdź właściwość Sync i wyłącz wiersz, jeśli jest ustawiony na true. Ta metoda działa niezależnie od tego, że jeśli do siatki zostanie dodanych kilka kolejnych wierszy, a następnie zostanie zapisana siatka, dane zostaną ponownie uporządkowane, aby wyłączony wiersz nie zawierał prawidłowych danych. Dlatego potrzebuję sposobu, aby się dowiedzieć, kiedy to się stanie, aby móc później ponownie przejść i wyłączyć odpowiednie rzędy.
private void ultraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
{
e.Row.Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
if (e.Row.Cells[grdBoundGrip.DisplayLayout.Bands[0].Columns["Sync"]].Value != null && (bool)e.Row.Cells[grdBoundGrip.DisplayLayout.Bands[0].Columns["Sync"]].Value)
e.Row.Activation = Infragistics.Win.UltraWinGrid.Activation.Disabled;
}
Czy możesz pokazać kod w zdarzeniu InitializeRow? – Steve
Witaj, Steve, dodałem powyższy kod, który działa poprawnie. Problem polega na tym, że po kliknięciu przycisku Zapisz pojawia się kod, który aktualizuje i zmienia kolejność elementów dataitems i niestety nie powoduje to ponownego uruchomienia zdarzenia InitializeRow. – Jim
Dokumenty dla [InitializeRow] (http://www.infragistics.com/help/topic/5CCF90C4-EEF6-4F4D-A979-B6F505F93318) wyjaśniają, że to zdarzenie powinno być wywoływane również w przypadku zmiany wartości pojedynczej komórki. Jest więc coś po poleceniu save, które uniemożliwia wystrzelenie tego zdarzenia. Ponownie, kod po komendzie zapisu może być pomocny. – Steve