Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Big Al
Thema: SUCHE: Speicher manipulation, RAM auslesen, rein schreiben
Am im Forum: Buchempfehlungen

Hallo,
erstmal wird es dir nicht möglich sein, direkt auf einen physischen Speicherbereich zuzugreifen, denn durch die Speichervirtualisierung hat jeder Prozess sozusagen seinen eigenen Arbeitsspeicher (Wikipedia Speichervirtualisierung)

Diese Frage kam hier auch schon öfters, aber hier mal ein paar Stichworte für dich:
ReadProcessMemory:
ReadProcessMemory (MSDN) und
ReadProcessMemory (pinvoke.net)
WriteProcessMemory:
WriteProcessMemory (MSDN) und
WriteProcessMemory (pinvoke.net)

Wenn du Stack oder DLLs im Arbeitsspeicher auslesen willst, kommt auch noch ASLR (Wikipedia ASLR) ins Spiel.
Schau dir mal Cheat Engine an. Ich glaube irgendwo gelesen zu haben, dass bei der Installation eine Art Tutorial mitinstalliert wird:
cheat engine
Viele Grüße,
Big Al

//Edit: Habe gar nicht gesehen, dass dein Beitrag im Buchforum steht, hier noch ein Buch darüber, ist aber Python, nicht C#:
Hacking mit Python

Thema: Animiertes Signal
Am im Forum: GUI: WPF und XAML

Hallo,
ich habe das ganze schon mit Ellipsen probiert, deren Radius ich animiert habe. Aber auch hier das Problem, dass das "Bild" dann immer an das umgebende Control angepasst wird und somit eigentlich nur die mittlere, nicht animierte Ellipse kleiner wird, weil ja das Image-Control nicht wachsen kann.
Big Al

Thema: Animiertes Signal
Am im Forum: GUI: WPF und XAML

Hallo,
ich versuche mich gerade an einer Animation eines WIFI Signals, die unanimiert ungefähr so wie auf dem Bild im Anhang aussieht. Ich habe das ganze in ein Image und eingebettetem GeometryDrawing eingebaut, doch wenn ich dann die einzelnen "Wellen" animiere verändert sich nur das Verhältnis der Wellen zueinander, anstatt zusammen größer zu werden, so wie ich das vorhabe. Wie kann ich so etwas am besten umsetzen? Ist GeometryDrawing überhaupt der richtige Ansatz?
Viele Grüße,
Big Al

Thema: Windows Soundoutput abfragen
Am im Forum: Grafik und Sound

Hallo Levitas,
vielleicht hilft dir die NAudio Bibliothek? Allerdings kann nicht jeder Treiber den Output ausgeben. Mein Treiber kann das z.B. nicht.
Big Al

Thema: Databinding: Animation zwischen altem und neuem Wert
Am im Forum: GUI: WPF und XAML

Hallo winsharp93,
Respekt, das ist eine ziemlich clevere Lösung! So werde ich das benutzen.
Big Al

Thema: Databinding: Animation zwischen altem und neuem Wert
Am im Forum: GUI: WPF und XAML

Hallo gfoidl,
ich denke nicht, dass ein Storyboard die Lösung für dieses Problem ist, denn es hat keinen Zugriff auf den alten Wert.
Hier noch einmal das Szenario:
Ich habe eine Button, dessen Width-Property an ein DependencyProperty des ViewModels gebunden ist.
Nun ändert sich das Property im ViewModel und das wird auch gleich vom Button übernommen. Jetzt kann ich zwar über einen DataTrigger bei einer Änderung eine Animation abspielen, aber diese kennt ja nur die aktuelle, also neue, Breite des Buttons. Wie soll ich denn nun eine Animation so abspielen, dass der Button die Breite animiert?
Soll ich hier ganz auf das Binding verzichten und nur den DataTrigger benutzen, sodass die Werte von der Animation an die des ViewModels angepasst werden?
Big Al

Thema: Databinding: Animation zwischen altem und neuem Wert
Am im Forum: GUI: WPF und XAML

Hallo,
was ich mich schon oft gefragt und oft gegoogelt habe, wofür ich aber noch keine Lösung gefunden habe, ist folgendes Problem:
Wenn ich eine Eigenschaft eines Controls, z.B. die Breite eines Buttons, an ein DependencyProperty in meinem ViewModel o.ä. binde und sich der Wert im ViewModel ändert, dann wird die Änderung selbstverständlich direkt zu dem Button durchgereicht und dieser bekommt die neue Breite. Wie kann ich aber diese Änderung animieren, sodass der Button von der alten Größe auf die neue wächst bzw. schrumpft? Man findet im Internet nur Beispiele, bei denen zwar eine Animation abläuft, diese aber nicht den alten Wert kennt.
Ein Beispiel hier von Josh Smith:
Orchestrating Animated Transitions between View and ViewModel
Er benutzt aber nur eine Fade-In und Fade-Out Animation für die Transitions. Wie sieht es mit konkreten Start- und Endwerten aus? Kennt da jemand eine gute Lösung? Vielleicht ein zwischengeschaltetes Objekt, welches beide Werte enthält, an die man dann die To und From Properties der Animation binden kann?
Vielen Dank,
Big Al

//Edit: Oder wäre es vielleicht der richtige Weg, den Wert im ViewModel zu animieren? Gehören Animationen da rein?
//Edit 2: Hier ist noch eine Lösung von Josh Twist, die mir aber nicht so gut gefällt, da man jedes gebundene Control noch einmal in ein UserControl verpacken muss:
Animating when data changes Part 2

Thema: SpeechRecognitionEngine - Thread wird beendet
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,
vielen Dank Herbivore, so wie du es beschrieben hast funktioniert es bis jetzt ohne Probleme. Ich denke nicht, dass der Fehler noch auftreten wird.
Vielen Dank dafür!
Big Al

Thema: SpeechRecognitionEngine - Thread wird beendet
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,
ich habe alle Events, die der Recognizer hat, abonniert und keines wird mehr gefeuert, wenn der Fehler auftritt. Aber wo muss ich das KeepAlive denn einsetzen? Es sollte ja an das Ende des Codeblocks, in dem es benötigt wird. Da die Erkennung aber dauerhaft laufen soll gibt es diesen Punkt doch gar nicht so. Ich erstelle den Recognizer, starte per RecognizeAsync den "Erkennungsthread" und warte auf die Events.
Wäre die korrekte Lösung vielleicht, die synchrone Recognize() Methode in einem Thread zu benutzen und beim feuern des RecognitionCompleted-Events wieder Recognize() aufzurufen?
Big Al

Thema: SpeechRecognitionEngine - Thread wird beendet
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Herbivore,
ich meinte den Thread, der durch RecognizeAsync gestartet wurde. BabbleTimeout, InitialSilenceTimeout und EndSilenceTimeout hatte ich testweise auch auf 9 Tage gesetzt, aber das hatte nichts geholfen. Ich werden mal die Sache mit dem Garbage Collector verfolgen.
Danke sehr!
Big Al

Thema: SpeechRecognitionEngine - Thread wird beendet
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Mycsharpler,
Viele werden noch nicht mit der Spracherkennung aus dem System.Speech.Recognition Namespace herumgespielt haben, aber vielleicht habe ich ja Glück und jemand kann mir helfen.
Ich benutze in meiner WPF Anwendung die Klasse SpeechRecognitionEngine um Sprache zu erkennen. Das funktioniert auch meistens einige Sekunden lang super. Nach zufälliger Zeit, manchmal auch sofort, beendet sich aber der Thread der Engine selbst, ohne das über irgendein Event mitzuteilen.
Wenn ich die Klasse SpeechRecognizer benutze, wird oben das Windows 7 Spracheingabefenster angezeigt, das auch immer den zuletzt gesprochenen Text zeigt. Wenn der Thread beendet ist wird dieser Text auch noch richtig angezeigt, aber keines der Events der Klasse feuert mehr.

Folgendermaßen benutze ich die Klasse:


SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
recognizer.SetInputToDefaultAudioDevice();

//Grammatik laden ...

recognizer.RecognizeAsync(RecognizeMode.Multiple);

In dem SpeechRecognized-Event wird einfach nur eine Action, die in einem Dictionary dem zu erkennenden Text zugeordnet ist, ausgeführt:


void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            Action<string> a;
            if (dict.TryGetValue(e.Result.Text, out a) && a != null)
                a(e.Result.Text);
        }

Das Ausgabefenster zeigt auch immer folgende Meldung an:
Fehler
Information: 0 : SAPI does not implement phonetic alphabet selection.
Die kommt allerdings immer, auch wenn die Eingabe noch funktioniert.

Ich habe schon stundenlang nach einer Lösung gegoogelt und würde mich wirklich freuen, wenn mir hier jemand weiterhelfen könnte.
Viele Grüße,
Big Al

Thema: Binding in Style und VisualBrush
Am im Forum: GUI: WPF und XAML

Ihr werdet es nicht glauben, aber das Problem ist ein WindowsFormsHost mit eingebautem WinForms Control, welches wiederum ein FlashPlayer Control enthält. Warum das passier kann ich noch immer nicht sagen, aber wenn ich das Control rauslasse funktioniert es. Sehr seltsames Verhalten...

Vielleicht weiß ja einer eine Antwort auf dieses Mysterium, das würde mich sehr interessieren. Erst einmal nehme ich jetzt den FlashPlayer raus.

Big Al

Thema: Binding in Style und VisualBrush
Am im Forum: GUI: WPF und XAML

Hallo,
Snoop stürzt bei mir leider immer ab einer bestimmten Stelle im TreeView ab, deshalb konnte ich das Control nicht näher analysieren. Ich werde wohl mal eine extra Anwendung schreiben, die das Problem ohne große Controls drumherum veranschaulicht. Vielleicht funktioniert Snoop ja dann. Ich habe auch versucht, den TextBlock in VisualBrush an den äußeren zu binden und bin auf exakt dasselbe Ergebnis wie vorher gekommen. Wenn sich durch Änderungen in der gebundenen Klasse der Wert der ProgressBar ändert, ändert sich auch der Wert des ersten TextBlocks, nicht aber der des zweiten.
Zur weiteren Info: Der Style liegt in einer XAML-Ressourcen-Datei, aber das dürfte eigentlich keine Rolle spielen, denn das Binding des ersten TextBlocks funktioniert ja.
Big Al

//Edit: Es wird noch komischer: Ich habe den Style 1 zu 1 in ein neues Testprojekt übertragen und dort eine ProgressBar mit dem Style versehen und ihren Wert an einen Slider gebunden. Hier funktioniert es, in dem anderen Projekt nicht. Beide haben als Framework-Target 4.0.

Thema: Binding in Style und VisualBrush
Am im Forum: GUI: WPF und XAML

Hi,
das muss ich gleich ausprobieren, wenn ich zu Hause bin. Von Snoop habe ich noch nie was gehört. Werde ich auch mal ausprobieren. Melde mich, wenn ich mehr weiß.
Danke erstmal,
Big Al

Thema: Binding in Style und VisualBrush
Am im Forum: GUI: WPF und XAML

Hallo,
ich versuche mich gerade an einer ProgressBar, die fünf Sterne statt des normalen Balkens anzeigt. Ich weiß, dass es da schon einige Lösungen gibt, aber ich dachte mir, dass meine eigentlich auch funktionieren müsste. Nur leider tritt hier ein komisches Phänomen auf. Hier erst einmal das XAML für den ProgressBar-Style. Da ich aber nur mein Problem demonstrieren möchte habe ich in PathData ein einfaches Rechteck statt der Sterne und im VisualBrush statt einer ProgressBar einen TextBlock drin. Außerdem ist im Grid noch ein weiterer TextBlock zur Veranschaulichung des Problems.


    <Style TargetType="ProgressBar" x:Key="starProgressBarStyle">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ProgressBar">
                    <Grid>
                        <TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value, Mode=OneWay}" Width="100"/>
                        <Viewbox>
                            <Path>
                                <Path.Fill>
                                <VisualBrush Stretch="Fill">
                                    <VisualBrush.Visual>
                                        <TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value, Mode=OneWay}" Width="100"/>
                                    </VisualBrush.Visual>
                                </VisualBrush>
                                </Path.Fill>
                                <Path.Data>
                                    <PathGeometry>
                                    <PathFigure StartPoint="0,0" IsClosed="True">
                                        <LineSegment Point="100,0"/>
                                        <LineSegment Point="100,100"/>
                                        <LineSegment Point="0,100"/>
                                    </PathFigure>
                                    </PathGeometry>
                                </Path.Data>
                            </Path>
                    </Viewbox>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Mein Problem ist nun, dass trotz exakt gleichem Code die beiden TextBlocks unterschiedliche Werte haben. Der TextBlock im VisualBrush wird nämlich bei Änderungen des Properties, an das er gebunden ist nicht geupdated und zeigt immer den ersten Wert. Der TextBlock im Grid zeigt allerdings immer den richtigen Wert an. Dieses seltsame Verhalten bereitet mir gerade einiges Kopfzerbrechen. Kennt jemand den Grund dafür?

Big Al

Thema: [gelöst] double durch Null Teilen wirft keine Exception
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi,
Ich würde dir außerdem noch empfehlen, die Eingabe zu prüfen anstatt auf die Exception zu warten.
Grüße,
Big Al

Thema: Kleines C# Spiel / Grafisches Programm programmieren
Am im Forum: Grafik und Sound

Hi,
mit XNA kann man in C# Spiele programmieren.
XNA Game Studio 4.0

Big Al

Thema: WPF - Wie folgendes Layout nachbilden
Am im Forum: GUI: WPF und XAML

Hi,
also wenn es nur ähnlich sein soll, würde ich das so machen:
Ein Grid mit 2 Spalten und für jeden Sender eine Zeile. In die erste Spalte kommt immer der Sendername und in die zweite ein ScrollViewer, in dem dann ein StackPanel mit Orientation=Horizontal steckt. Dann hast du aber natürlich ScrollBars und keinen Button, mit dem du das Programm scrollst. Du könntest also noch eine 3. Spalte einfügen und dort den Scroll-Button unterbringen.
Wenn die Anzahl der Programme variabel ist, kannst du statt des Grids auch ein StackPanel nehmen und in dieses viele kleine Grids mit einer Zeile und 2 Spalten stecken.
Viele Grüße,
Big Al

//Edit: Bild angehängt (Die Pfeile hinten sind optional)

Thema: JumpList.GetJumpList(App.Current) gibt null zurück
Am im Forum: GUI: WPF und XAML

Hi,
dass Windows nur die RecentFiles selbst einträgt, ist mir klar. Allerdings sind ja Links, die ich in die JumpList eintrage, auch nach dem Beenden des Programms noch in der Liste. Erst wenn ich das Programm neu starte wird die Liste geleert, weil sie durch die im XAML definierte Standard-JumpList ersetzt wird. Ich würde nun gerne die Links, die schon in der Liste sind, in die neue JumpList übernehmen.
Big Al

Thema: JumpList.GetJumpList(App.Current) gibt null zurück
Am im Forum: GUI: WPF und XAML

Hi,
danke für die Antwort! Das Entfernen funktioniert jetzt, ich hatte 2 Anwendungen vertauscht.
Allerdings werden zwar Elemente, die ich in die JumpList lege auch nach dem Programm-Ende angezeigt, aber diese werden gelöscht, wenn ich das Programm neu starte und die Standard-JumpList die alte überschreibt. Muss man also bei jedem Programmstart die Jumplist neu befüllen oder kann man die Werte irgendwie übernehmen?
Viele Grüße,
Big Al

Thema: JumpList.GetJumpList(App.Current) gibt null zurück
Am im Forum: GUI: WPF und XAML

Hallo,
wie schon im Titel gesagt, gibt ein Aufruf von JumpList.GetJumpList(App.Current) in meiner Anwendung null zurück, wenn ich das Programm aufrufe. Ich setze dann zwar einfach eine neue Jumplist über JumpList.SetJumpList und diese wird auch von GetJumpList zurückgegeben. Starte ich die Anwendung allerdings neu, kommt wieder null zurück. Außerdem scheint die Apply Methode nicht zu funktionieren, denn das Löschen eines Items funktioniert auch nicht. Hier mein Code zum hinzufügen eines Items:


JumpList jl = JumpList.GetJumpList(App.Current);

if (jl == null)
     jl = new System.Windows.Shell.JumpList();

System.Windows.Shell.JumpTask t = new System.Windows.Shell.JumpTask();
t.ApplicationPath = path;
t.IconResourcePath = path;
t.Title = name;
t.CustomCategory = "Links";
t.Description = description;

jl.JumpItems.Add(t);

JumpList.SetJumpList(App.Current, jl);
jl.Apply();
Und hier, wie ich versuche, ein Item zu entfernen:


JumpList jl = JumpList.GetJumpList(App.Current);
if (jl == null)
     return;

JumpItem toRemove = null;
foreach (JumpItem i in jl.JumpItems)
{
      JumpTask t = i as JumpTask;
      if (t != null && t.ApplicationPath == path)
      {
              toRemove = i;
              break;
       }
}
if (toRemove != null)
{
        jl.JumpItems.Remove(toRemove);
        jl.Apply();
}

In allen Beispielen, die ich bisher gesehen habe, wird gar nicht geprüft, ob JumpList.GetJumpList(App.Current) null zurückgibt, es scheint also eigentlich immer was kommen zu müssen. Kann mir jemand sagen, was ich falsch mache?
Vielen Dank,
Big Al

//edit: Ach ja, hier noch der Link zu MSDN: Jumplist Klasse

Thema: Bluestone - Logical Gate Simulator
Am im Forum: Projekte

Hi André,
ich habe mir das Tool mal angeschaut. Ich finde die Idee super, aber so ganz funktioniert das bei mir noch nicht.
Ich denke mal, dass der rechte Schieberegler für den Zoom ist, oder? Bei mir hat sich allerdings nichts getan, als ich ihn benutzt habe. Das Beispiel mit der Uhr habe ich heruntergeladen und versucht zu laden, aber es ist nichts passiert.
Bei der Navigation fände ich es schöner, wenn du die Regler anpasst. Wenn ich einen Regler nach rechts ziehe, bewegt sich die "Kamera" nach links, das ist irgendwie irritierend. Außerdem fände ich es schöner, wenn ein Element schon beim OnMouseDown den grünen Auswahlrahmen bekommt, aber das ist nur Kosmetik. Schon störender ist, dass das SelectionTool mehrere Elemente auswählt, wenn man sie hintereinander anklickt. Das sollte so nur sein, wenn man beim Klicken Strg gedrückt hält. Wie wäre es außerdem, wenn du die Tool-Buttons zu RadioBoxen mit Button-Stil machst? So könnte man schneller sehen, welches Tool gerade ausgewählt ist.
Ich habe es auch nicht hinbekommen, auf dem BCD irgendetwas anzeigen zu lassen, wie füge ich denn eine "Stromquelle" hinzu? Aus deinem Bild schließe ich, dass das die Buttons sind, aber wie ändere ich deren Farbe auf Orange, was wohl "An" bedeuten soll?
Wenn ich die RedstoneSimulator.exe starte, passiert gar nichts. Wofür ist die da?
Vielleicht postest du hier mal eine kurze Anleitung, damit man das auch versteht. Wenns funktioniert, dann ist das ein super Programm für die Rechnertechnik-Hausaufgaben ;-)
Viele Grüße,
Big Al

Thema: WebRequest mit Digest Authentication
Am im Forum: Web-Technologien

Hi,
Sorry das ich mich erst so spät melde, ich hatte den Thread aus den Augen verloren. Ich denke dieser Authentifizierungsfehler muss an dem Server liegen, denn bei mir funktioniert es so:


static void Main(string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost/digest_auth_test.php");
            request.Credentials = new NetworkCredential("Alexander", "123456");
            request.PreAuthenticate = true;

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            using (StreamReader s = new StreamReader(response.GetResponseStream()))
            {
                Console.Write(s.ReadToEnd());
            }
            Console.ReadKey();
        }
Bist du dir sicher, dass dein Passwort und Username richtig sind?
Big Al

Thema: WebRequest mit Digest Authentication
Am im Forum: Web-Technologien

Hi,
also bei mir war das mit Google das erste Suchergebnis:
http://www.stickler.de/code-snippets.aspx?id=6
Vielleicht hilft das ja weiter.
Big Al

Thema: ListView Itemwahl bei Maus-Drag deaktivieren
Am im Forum: GUI: WPF und XAML

Hi,
ich habe es jetzt so gelöst, dass ich auf das MouseUp Event horche. Dann starte ich einen Timer und wenn innerhalb kurzer Zeit wieder gedrückt wird, ist es ein Doppelklick und ich öffne den Expander. Da es MouseUp ist, wird dann kein anderes Item ausgewählt.
Big Al

Thema: ListView Itemwahl bei Maus-Drag deaktivieren
Am im Forum: GUI: WPF und XAML

Hallo Talla,
der SelectionMode ist Single, allerdings wird ja auch immer nur ein Item ausgewählt, nur halt das falsche.
Big Al

Thema: ListView Itemwahl bei Maus-Drag deaktivieren
Am im Forum: GUI: WPF und XAML

Hallo,
Ich habe ein kleines Problem mit dem WPF ListView. Das wählt ja auch Items aus, wenn man auf einem Item die Maus gedrückt hält und sie dann über ein anderes Item bewegt.
Im Grund würde es schon reichen zu wissen, wie man dieses Verhalten deaktiviert, aber ich erkläre mal weiter, falls das nicht geht.
Ich habe also ein ListView und wenn ich auf ein Item doppelklicke, öffnet sich auf der rechten Seite ein Expander. Das ListView wird also kleiner und die Position der Items verschiebt sich. Nun ist in dem kurzen Moment nach dem Doppelklick die Maustaste noch gedrückt und somit wird dann das Item ausgewählt, das nun an der Stelle ist, an der das eigentlich auszuwählende Item war.
Gibt es hier eine elegante Lösung, das zu vermeiden?
Vielen Dank,
Big Al

Thema: Projekteigenschaften für bestimmte Konfiguration (unterschiedliche Zielframeworkversionen) ändern
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,
ich versuche gerade zum ersten Mal, neben Debug und Release weitere Konfigurationen für ein VS 2010 Projekt zu benutzen. Allerdings kann ich in den Projekteigenschaften unter "Anwendung" die Konfiguration, für die ich Einstellungen ändern möchte, nicht auswählen. Dort steht "Nicht zutr." und die DropDown-Box ist ausgegraut. Wie das aussieht seht ihr im Anhang.
Unter "Erstellen" kann ich die Konfiguration übrigens ändern.
Mein Ziel ist es, jeweils eine Konfiguration für eine Kompilierung fürs Framework 4.0 und 3.5 SP1 zu haben. Ist das überhaupt der richtige Weg?
Vielen Dank schonmal,
Big Al

Thema: Dispatcher bricht einfach ab
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,
ich habe das Problem gelöst. Es lag daran, dass der Dispatcher auch in einem anderen Thread als dem GUI Thread erzeugt wurde. Da liefert Dispatcher.CurrentDispatcher natürliche einen falschen.
Vielen Dank für die Hilfe,
Big Al

Thema: Dispatcher bricht einfach ab
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi,
das funktioniert auch nicht, da muss es wohl am Code drumherum liegen. Ich lade im Hintergrund Informationen, die in eine Collection kommen. Ein ViewModel greift dann, wenn der Ladevorgang abgeschlossen ist, auf die Collection zu und erstellt ViewModels der geladenen Items und schreibt sie in eine eigene ObservableCollection.
Hier mal ein bisschen Code der Methode, die nach dem Laden aufgerufen wird:


protected override void OnInformationLoadingCompleted(IAsyncResult res)
        {
            (res.AsyncState as Action).EndInvoke(res);

            //Hier kommt der Teil, der abschmiert:
            foreach (Appeal.Model.Base.Comment c in ((OnlineApp)Model).GetComments())
            {
                CommentViewModel vm = new CommentViewModel(c);
                Comments.Add(vm);
            }

            infoLoaded = true;
       }