Hier ist ein Beispiel für die Verwendung verschiedener TableStyles je nach Art des aktuell ausgewählten Objekt in einem DataGrid. Ich habe 2 Netze, jeder Haken zu ExpressionHandles. Ich möchte, um eine andere Gruppe von Spalten, je nachdem, welche Art von Objekt in der oberen Raster.
Erstens die Anwendung wissen müssen, wenn ein neues Objekt ausgewählt wurde. Hier ein CurrencyManager wird angeschlossen. DgStock ist ein DataGrid, ehRoot ist ein ExpressionHandle mit den Lager-Objekte.
privatecmStock: CurrencyManager;
....
Verfahren TfrmStock.TfrmStock_Load (Absender: System.Object; e: System.EventArgs);
beginnen
cmStock: = CurrencyManager (dgStock.BindingContext [Self.ehRoot]);
Include (cmStock.PositionChanged, Self.StockGridRowChanged);
end;
Dann wird die Veranstaltung Code, wird gefeuert, wenn die CurrencyManager-Position wird geändert. Ich wieder zurück in die Verwendung des CurrencyManagerHandle, die verwendet wird, um die 2-Raster, um das aktuelle Objekt. Ich habe nur die CurrencyManager zu warnen mich, dass die Top-Gitter hat sich geändert.
Verfahren TfrmStock.StockGridRowChanged (Absender: System.Object; e: System.EventArgs);
beginnen...wenn vorrätig (cmhStock.Element.AsObject). StockCategory.IsBoot dann
beginnen
dgStockItems.TableStyles.Clear;
dgStockItems.TableStyles.Add (self.tsItemsWithSole);
Ende
sonst
beginnen
dgStockItems.TableStyles.Clear;
dgStockItems.TableStyles.Add (self.tsItemsNoSole);
end;
...end;
Um diesen Code effizienter zu gestalten, ist es sinnvoll, nur die TableStyle, wenn nicht die aktuelle TableStyle. Um dies zu tun, können wir fragen, die TableStylesCollection, wenn sie die erforderlichen TableStyle. Dies funktioniert, wenn wir immer nur ein TableStyle aktiv sein.
beginnen
pnlItems.Visible: = true;
pnlPricing.Visible: = true;
wenn vorrätig (cmhStock.Element.AsObject). StockCategory.IsBoot und nicht
dgStockItems.TableStyles.Contains (self.tsItemsWithSole), dann
beginnen
dgStockItems.TableStyles.Clear;
dgStockItems.TableStyles.Add (self.tsItemsWithSole);
Ende
sonst
wenn nicht vorrätig (cmhStock.Element.AsObject). StockCategory.IsBoot und nicht
dgStockItems.TableStyles.Contains (self.tsItemsNoSole), dann
beginnen
dgStockItems.TableStyles.Clear;
dgStockItems.TableStyles.Add (self.tsItemsNoSole);
end;
end;
Ich hoffe, dass dieser kurzen Beitrag kommt in handliches zu den anderen Modellen.

Delicious
Digg
Google
Yahoo