C# WPF DocumentViewer mit DataGrid

speedsam

Cadet 2nd Year
Registriert
Sep. 2014
Beiträge
22
Guten Tag,

ich habe einen Datenbankconnect, welcher daten in eine Observable Collection lädt, und anzeigt.
nachkommastellen der Zahlen habe ich in XAML per Format{0:n2} angepasst, und auch das datum mit 'dd:mm:yyyy'.

Nun gehören diese Daten ausgedruckt. Dazu Verwende ich den DocumentViewer Element.

Hier habe ich aber keine Möglichkeit auf das XAML des Datagrids zuzugreifen.. somit Formate zu ändern usw.
HILFEE
 
joa.. hilft ja nicht. ich hätte es halt gern irgendwann fertig .. und ich kanns einfach nicht glauben das ich Decimal? nicht irgendwie runden kann.. das kann doch nicht wahr sein

Aber danke dir!
 
Hi,

1. Entweder du bist ein Profi mit Zeitdruck, dann solltest du es selbst können, oder du bist jemand mit wenig Ahnung, dann darf es dir aber nicht pressieren. Beides gemischt geht nicht!
2. Selbstverständlich kann man in .NET mit C# WPF ein Object des Typs "Decimal" runden. Wieso sollte das auch nicht gehen?

Code:
            decimal d = (decimal)1.5642;
            decimal RoundedIntegerNumber = Math.Round(d); // auf ganze Zahl runden = 2
            decimal RoundedDecimalNumber = Math.Round(d, 2); // auf 2 Nachkommastellen runden = 1.56
            decimal NextHigherNumber = Math.Ceiling(d); // auf nächsthöhere Zahl runden = 2
            decimal NextLowerNumber = Math.Floor(d); // auf nächsttiefere Zahl runden = 1

Quelle

Was genau geht denn nicht?

VG,
Mad
 
ja ne, es pressiert ja auch nix, nur bei mir intern^^

es ist so:

decimal ist eh klar.
aber es geht mir hier um Decimal? NULLABLE
 
das gesamt PRoblem ist, das ich mir die Daten im DataGrid anzeigen lasse. und dort in XAML kann ich sagen :
<DataGridTextColumn Header="Datum" Binding="{Binding TagesDatum, StringFormat='{}{0:dd.MM.yyyy}'}" IsReadOnly="True" />
<DataGridTextColumn Header="Gutschrift" Binding="{Binding Gutschrift, StringFormat={}{0:n2}}" IsReadOnly="True"/>
STring Format kürzt es mir weg.

Nun wenn ich einen DocumentViewer nun habe, weil ich diese Daten ausdrucken will,
muss ich dort auch ein DataGrid deklarieren.
hier der Code:
Code:
 DataGrid g = new DataGrid();
            g.IsReadOnly = true;  // Sonst kann man was ändern
            g.Margin = new Thickness(Cm2Dip(2), Cm2Dip(5), 0, 0);
            g.Width = Cm2Dip(20);
            g.Height = Cm2Dip(15);
            page1.Children.Add(g);          
            g.ItemsSource = _glist;

dann werden die Spalten Autogenerated, und die Formate sind nicht passend.
bei Berechnungsfeldern welche sich aus dem SELECT ergeben, diese werden 36,6666666666666666666666 angezeigt.

hier mit dem Decimal? problem, geht es darum, da mir hier im DocumentViewer nichts einfällt, versuche ich die Datentypen gleich in der Klasse anzupassen.. aber leider ohne Erfolg.:

Code:
   public class GesamtUmsatz
    {
        public DateTime? TagesDatum { get; set; }
        public decimal? Umsatz { get; set; }
        public decimal? Gutschrift { get; set; }
        public decimal? Gesamtumsatz { get; set; }
        public decimal? Fiktiv { get; set; }
        public decimal? MPK{ get; set; }
        public decimal? KL{ get; set; }

        public GesamtUmsatz(DateTime? tagesdatum, decimal? umsatz, decimal? gutschrift)
        {
            TagesDatum = tagesdatum;
            Umsatz = umsatz / 10;
            Gutschrift = gutschrift / 10;
            Gesamtumsatz = Umsatz - Gutschrift;          
            Fiktiv = Gesamtumsatz - 742.50M;
            MPK= Fiktiv / 3;
            KL= MPK* 2;
        }
        public override string ToString()
        {
            return string.Format("{0} {1} {2} {3} {4} {5} {6}", TagesDatum, Umsatz, Gutschrift, Gesamtumsatz, Fiktiv, MPK, KL); 
        }
    }
und hier will ich irgendwo versuchen zu Runden oder so. . .
Ergänzung ()

Im Endeffekt benötige ich eine Hilfestellung, wie ich das ganze in Xaml ( Collums Binding, formate ) auch in C# für den DocumentViewer abbilden kann..
sowas wie g.AutogeneratedColumns = False; funktioniert auch. Nur das ganze andere Zeug nicht so richtig, beziehungsweise habe ich da keine Ansätze dafür
 
Zurück
Oben