NerdishByNature

WPF, MVVM, Dispatcher und AsyncOperation

Hier geht es um das Feedback für den User, wenn z.B. eine Liste grad gefiltert wird. Das Ganze mit Hilfe von MVVM, dem Dispatcher und einer AsyncOperation unter WPF.

Wird eine Liste gefiltert kann dies manchmal auch etwas länger dauern. Als Feedback für den Anwender benutze ich einen BusyIndicator als Ladeanzeige. Ich habe zwei ViewModels, FilterViewModel und MainViewModel. In dem MainViewModel gibt es ein Property “IsBusy” über welches ich den BusyIndicator steuer. In dem FilterViewModel gibt es eine Methode Filter, die das Filtern der Daten für die Liste übernimmt und am Anfang das “IsBusy” Property auf true setzt.
Bisher sieht meine Methode wie folgt aus:


Feste Zeilen oder Spalten in Excel mit .NET

In meinem vorherigen Post hatte ich etwas zu einem fixierten Header beim Ausdrucken von Excel-Sheets geschrieben. Jetzt möchte ich noch zeigen wie man Zeilen und Spalten auch direkt in einem Excel-Sheet erstellen kann. Und wie immer natürlich mit .NET / C#

Ich benutze die Interop Assemblies von Office 2010, es sollte aber auch mit den Office 2007 Assemblies funktionieren.

_xlWorksheet.Activate();
_xlWorksheet.Application.ActiveWindow.SplitRow = 1;
_xlWorksheet.Application.ActiveWindow.FreezePanes = true;

Zuerst das entsprechende Datenblatt aktivieren. Als nächstes die Eigenschaft SplitRow bzw. SplitColumn setzten. Hier gebt ihr die Anzahl der zu fixierenden Zeilen bzw. Spalten an.
Als letztes muss noch angegeben werden, dass die angegebenen Bereiche gesperrt werden sollen. Dies geschieht über die Eigenschaft FreezePanes.

Wieder einmal kurz und knapp. Hauptsache es hilft :)

Feste Rows beim Drucken von Excel-Sheets

Ich habe einen kleinen Excel Exporter unter C# geschrieben. Erste Zeile ist der Header und darunter die Daten. Das Ganze im Querformat mit angepassten Printmargins usw. Da nicht immer alle Daten auf eine Seite passen, wäre es schön, wenn man schon alles ausdrucken muss, auf jeder Seite oben den Header zu haben.

Gesucht und gefunden. Für all jene, die das auch brauchen hier die eine! Zeile Code:

_xlWorksheet.PageSetup.PrintTitleRows = "A1";

_xlWorksheet ist mein aktives Datenblatt. Genaueres findet ihr hier: PageSetup.PrintTitleRows.