| 

.NET C# Java Javascript Exception

2
Hallo,
ich habe folgendes Problem. Meinem Datagrid setze ich beim loadingRow den Hintergrund bzw die Schriftfarbe. Das funktioniert auch einwandfrei.
Wenn ich jetzt allerdings im Datagrid auf und ab scrolle, werden diese Einstellungen irgendwie überschrieben. Warum ist das so? Wie kann ich das unterbinden?

hier der Code zur loadingrow

private void loadingRow(object sender, DataGridRowEventArgs e) 
{
DataRowView item = e.Row.Item as DataRowView;

if (item.Row.ItemArray[0] != null && !item.Row.ItemArray[0].ToString().Equals(""))
{
if ((int)item.Row.ItemArray[0] > 0)
e.Row.Background = Brushes.LightBlue;
if (item.Row.ItemArray[2] != null)
{
if (item.Row.ItemArray[2].ToString().Equals("1"))
{
e.Row.Foreground = Brushes.DarkRed;
}
if (item.Row.ItemArray[2].ToString().Equals("-1"))
{
e.Row.Foreground = Brushes.Tomato;
}
}
}
}


lg
News:
22.06.2011
mrmee 745 1 8
mrmee 745 1 8
ist "loadingRow" ein Event bei dem du codebehind Styles lädst? Zeig mal ein bisschen Code, wie du das derzeit machst. Ich empfehle dazu deine Frage um diesen zu erweitern.
Mario Priebe 23.06.2011
Ich setze beim "loadingrow" nur den Hintergrund bzw. die Schriftfarbe anders. Richtige Styles werden nicht erstellt.
Kann heute leider den Code nicht posten.
mrmee 24.06.2011
So hab jetzt meine Frage um den Code erweitert.
mrmee 27.06.2011
1
Wie werden die Einstellungen denn überschrieben? Während des Scrollens kommst du nicht mehr in diese Methode rein? Einfach mal einen BreakPoint da rein und mal austesten.
Mario Priebe 27.06.2011
Hab ich schon gemacht. Loadingrow wird beim scrollen nicht mehr aufgerufen.
mrmee 27.06.2011
Und trotzdem wird das Design während des scrollens geändert?
Mario Priebe 27.06.2011
Jap.
z.B.: Zeile 1 und 2 weiß. Der Rest blau. Wenn ich jetzt nach unten scrolle und dann wieder nach oben, sind die ersten beiden Zeilen auch blau.
mrmee 27.06.2011
puh, kannst du den Teil per Mail schicken, dann würde ich mir das mal anschauen.
Mario Priebe 27.06.2011
tut mir leid, hab da glaub ich beim letzten Mal etwas falsch gemacht. LoadingRow wird beim scrollen doch aufgerufen.
mrmee 28.06.2011
2 Antworten
1
Hab jetzt durch Mario Priebes Hilfe das Problem gelöst.

Beim scrollen wird LoadingRow erneut aufgerufen. Wird dann wieder eine Zeile geladen, deren Daten zu keiner Änderung des Background führen wurde dies im Code nicht berücksichtigt. Wenn also eine Zeile mit blauem Background geladen wurde, wurde dieser für die aktuelle Zeile übernommen.

if ((int)item.Row.ItemArray[0] > 0)
{
e.Row.Background = Brushes.LightBlue;
}
else
{
e.Row.Background = Brushes.White;
}
28.06.2011
mrmee 745 1 8
0
Hallo,

wahrscheinlich kannst du das was du da machst auch direkt mit Styles / Triggers machen.
Damit sparst du dir das Gefummel im Code und hast diese Probleme mit übermalen beim Scrollen nicht.

Was möchtest du denn genau machen?

Gruß
Michael
23.06.2011
michlG 1,7k 1 5
Jede Zeile soll anhand des Datensatzes der geladen wird, einen anderen Hintergrund bzw. eine andere Schriftfarbe bekommen.
mrmee 24.06.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH