Dynamische Tablestyles basierend auf Objekttyp
Hier ist ein Beispiel der Verwendung von verschiedenen TableStyles abhängig vom Typ des ausgewählten Objekts in einem DataGrid. Ich habe 2 Gitter, jeweils zu ExpressionHandles angespannt. Ich möchte einen anderen Satz von Spalten, je nach den Typ des Objekts in der oberen Tabelle anzuzeigen.
Erstens müssen die Anwendung wissen, wenn ein neues Objekt ausgewählt wurde. Hier ist ein CurrencyManager angeschlossen wird. DgStock ist ein DataGrid, EhRoot ist ein ExpressionHandle mit den Lager-Objekten.
Private CmStock: CurrencyManager;
....
Prozedur TfrmStock.TfrmStock_Load (Absender: System.Object; e: System.EventArgs);
beginnen
CmStock: = CurrencyManager(dgStock.BindingContext[Self.ehRoot]);
Enthalten Sie (cmStock.PositionChanged, Self.StockGridRowChanged);
Ende;
Dann der Ereigniscode, der ausgelöst wird, wenn die CurrencyManager-Position geändert wird. Ich zurückkehren zurück zur Verwendung der CurrencyManagerHandle, mit dem die 2 Raster zum Abrufen des aktuellen Objekts link. Ich habe nur die CurrencyManager verwendet, um mich zu warnen, die der oberen Tabelle geändert hat.
Prozedur TfrmStock.StockGridRowChanged (Absender: System.Object; e: System.EventArgs);
... beginnen, wenn Stock(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);
Ende;
... end;
Um diesen Code effizienter, macht es Sinn, die TableStyle nur ändern, wenn ist nicht die aktuelle TableStyle. Hierzu können wir die TableStylesCollection bitten, wenn er die erforderlichen TableStyle enthält. Dies funktioniert, wenn wir immer nur ein TableStyle gleichzeitig aktiv haben.
beginnen
pnlItems.Visible: = True;
pnlPricing.Visible: = True;
Wenn Stock(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 Stock(cmhStock.Element.AsObject). StockCategory.IsBoot und nicht
dgStockItems.TableStyles.Contains(self.tsItemsNoSole) dann
beginnen
dgStockItems.TableStyles.Clear;
dgStockItems.TableStyles.Add(self.tsItemsNoSole);
Ende;
Ende;
Ich hoffe, dass dieser kurze Artikel zu anderen kommt in handliches.
Dynamische Tablestyles basierend auf Objekttyp
Dynamische Tablestyles basierend auf Objekttyp : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Hier ist ein Beispiel der Verwendung von verschiedenen TableStyles abhängig vom Typ des ausgewählten Objekts in einem DataGrid. Ich habe 2 Gitter, jeweils zu ExpressionHandles angespannt. Ich möchte einen anderen Satz von Spalten, je nach den Typ des Objekts in der oberen Tabelle anzuzeigen.
Erstens müssen die Anwendung wissen, wenn ein neues Objekt ausgewählt wurde. Hier ist ein CurrencyManager angeschlossen wird. DgStock ist ein DataGrid, EhRoot ist ein ExpressionHandle mit den Lager-Objekten.
Private CmStock: CurrencyManager;
....
Prozedur TfrmStock.TfrmStock_Load (Absender: System.Object; e: System.EventArgs);
beginnen
CmStock: = CurrencyManager(dgStock.BindingContext[Self.ehRoot]);
Enthalten Sie (cmStock.PositionChanged, Self.StockGridRowChanged);
Ende;
Dann der Ereigniscode, der ausgelöst wird, wenn die CurrencyManager-Position geändert wird. Ich zurückkehren zurück zur Verwendung der CurrencyManagerHandle, mit dem die 2 Raster zum Abrufen des aktuellen Objekts link. Ich habe nur die CurrencyManager verwendet, um mich zu warnen, die der oberen Tabelle geändert hat.
Prozedur TfrmStock.StockGridRowChanged (Absender: System.Object; e: System.EventArgs);
... beginnen, wenn Stock(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);
Ende;
... end;
Um diesen Code effizienter, macht es Sinn, die TableStyle nur ändern, wenn ist nicht die aktuelle TableStyle. Hierzu können wir die TableStylesCollection bitten, wenn er die erforderlichen TableStyle enthält. Dies funktioniert, wenn wir immer nur ein TableStyle gleichzeitig aktiv haben.
beginnen
pnlItems.Visible: = True;
pnlPricing.Visible: = True;
Wenn Stock(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 Stock(cmhStock.Element.AsObject). StockCategory.IsBoot und nicht
dgStockItems.TableStyles.Contains(self.tsItemsNoSole) dann
beginnen
dgStockItems.TableStyles.Clear;
dgStockItems.TableStyles.Add(self.tsItemsNoSole);
Ende;
Ende;
Ich hoffe, dass dieser kurze Artikel zu anderen kommt in handliches.
Dynamische Tablestyles basierend auf Objekttyp
By Wiezutun
Dynamische Tablestyles basierend auf Objekttyp : Mehreren tausend Tipps, um Ihr Leben einfacher machen.