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 DaMoe80
Thema: Funktionsaufrufe als Value im Dictionary
Am im Forum: Grundlagen von C#

Ich dachte, dass ich nicht explizit darauf hinweisen muss, dass das abgeaenderte Dictionary lediglich eine Moeglichkeit von vielen ist, bevor man in Richtung ICommand geht und ohne, dass der eigentliche Use Case geschildert wurde.

@FZelle: Warum Du einen Knopf an der Backe moechtest oder hast, entzieht sich meinem Verstaednis, da das schon ziemlich doof aussieht. Aber das muss letztendlich jeder fuer sich entscheiden, welchem Schoenheitsideal man folgt.

Beste Gruesse

Thema: Funktionsaufrufe als Value im Dictionary
Am im Forum: Grundlagen von C#

Moin, moin,

naja...man kann ICommand nehmen oder koennte das Dictionary auch auf Dictionary<string, Delegate> umschreiben (siehe Hinweis von Th69).

Gruss,
Moe

Thema: Unterschied zwischen "new MyClass()" und "private static MyClass ..."
Am im Forum: Grundlagen von C#

Moin,

Dein erstes Beispiel erzeugt erst einmal eine Instanz der SerialPort Klasse, wie Du bereits gesagt hast. Auf diese Art und Weise kannst Du bspw. eine lokale Variable in einer Methode erzeugen.

Die zweite Variante definiert zum einen die Sichtbarkeit "private" der Variable serialPort, und ist nur innerhalb einer Klasse sichtbar. Static bedeutet wiederum, dass jede neue Instanzen der umschliessenden Klasse Zugriff auf dieselbe Kopie der SerialPort Instanz hat. Die Variable serialPort ist Instanz uebergreifend gueltig/verfuegbar.

Gruss,
Moe

Thema: Spiel in minimaler Anzahl Zügen erreichen
Am im Forum: Grundlagen von C#

Moin,
letztendlich ist es ein Baum, der hier aufgebaut werden muss und man sucht nach dem kuerzesten Weg. Dazu faellt mir der A* (A-Stern) Algorithmus ein:

A* Algorithm

Vielleicht hilft Dir das weiter.

Gruss,
DaMoe

Thema: Zahlen aus Textbox auslesen, zusammenrechnen und in Textbox anzeigen
Am im Forum: Grundlagen von C#

Hallo hasan,

ich wuerde zu LaTinos Punkten gerne den Punkt 0 hinzufuegen und Dir raten sich Gedanken ueber ein Domaenenmodell zu machen, d.h. brauchst Du eventuell eine Produkt-Klasse (mit Name und Preis; spaeter erhaelt es weitere Eigentschaften). Dann wirst Du sicherlich eine Warenkorb-Klasse benoetigen, die Produkte und deren Anzahl aufnehmen kann. Des weiteren wird sie dir dann die Summe bspw. ausgeben koennen usw.
Im Prinzip ist das Domaenenmodell die Grundlage fuer die technischen Punkte 1 und 2, die LaTino erwaehnt.

Gruss,
DaMoe

Thema: Bluetooth: Sperren von Laptop wenn das Handy ausserhalb der Reichweite ist
Am im Forum: Netzwerktechnologien

Huhu Angel123,

schau doch einfach mal hier. Vielleicht hilft Dir das weiter Testing if a device is in range

Gruss,
DaMoe

Thema: In der Konsole geschriebenes durch Eingabe verschieben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Pernox,

meinst Du etwa String Padding?

Gruss,
DaMoe

Thema: Auf Control in ControlTemplate zugreifen (Code Behind)
Am im Forum: GUI: WPF und XAML

Hi Maliko,

das Szenario, welches Du beschreibst hoert sich nach Master-Detail DataGrid an. Schau mal hier, ob das was fuer Dich ist: Master-Detail-Wpf

Gruss,
DaMoe

Thema: Logging @ ViewModel
Am im Forum: GUI: WPF und XAML

@FZelle: Mit Auditing meinte ich lediglich Aktionen, die der User in einer Applikation durchfuehrt, d.h. Dinge selektiert, Aktionen ausfuehrt, Buttons klickt etc., sodass man einen groben Pfad durch die Applikation erhaelt. Das entscheidende an dieser Stellt soll aber nicht der Begriff sein. Ich meinte also das, was Du umschrieben hast mit:

Zitat
Das ViewModel in MVVM ist die Businesslogik des View.
Wenn hier etwas zu loggen ist, was nichts in der darunterliegenden Schicht zu suchen hat, dann ist es natürlich die richtige Stelle.


Gruss,
DaMoe

Thema: Logging @ ViewModel
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

mich interessiert eure Ansicht bzgl. Logging/Auditing in ViewModels. Wir haben eine Diskussion bei uns darueber, ob nun Logging Funktionalitaet in einem ViewModel verwendet werden darf oder nicht.
Eine Meinung dazu ist, da das ViewModel "zur UI gehoert", dass dort Logging nicht zu suchen hat. Ich sehe das etwas anders. Meiner Ansicht nach bildet das ViewModel u.A. Use-Cases ab, die man auf einer grob granularen Ebene "mitloggen"(Auditing) kann.

Wie seht Ihr das? Habt Ihr irgendwelche Literatur/Links zu Pro und Contra?
Selber habe ich mal u.A. bei Prism geschaut, wie die das machen.

Gruesse,
DaMoe

Thema: [erledigt] warum kann ich nicht hier meine Methode verifizieren?
Am im Forum: Rund um die Programmierung

Hallo,

was bekommst Du ueberhaupt fuer eine Fehlermeldung?

Was ist den "tempRow" fuer eine Variable?

Gruss,
DaMoe

Thema: ShowDialog() sperrt alle Forms (von allen Instanzen/Prozessen des Programms)
Am im Forum: GUI: Windows-Forms

Hallo,

was meinst Du mit "das zweite Programm"? Meinst Du damit, dass auch ein anderer, sprich zweiter Prozess auch "gesperrt" wird?

Gruss,
DaMoe

Thema: LinQ-Prüfen ob in String ein Ausdruck aus einer List<T> oder String[]-Array vorhanden ist
Am im Forum: Datentechnologien

Tach auch,

das Codebeispiel, welches Du aufgefuehrt hast, macht so nicht viel Sinn, sprich strUntersuchen.AsEnumerable(), da du da ueber die chars iterierst. Der pragmatischte Ansatz waere in etwa der Folgende, ohne genau zu wissen, was Du genaus wissen willst, d.h. die enthaltenen Ausdruecke oder, ob nur einer der vordefinierten Ausdruecke enthalten ist.


var enthalteneAusdruecke = LAusdrücke.Where(strUntersuchen.Contains);

Gruss,
DaMoe

Thema: Liste im Hintergrund (Thread?) abarbeiten
Am im Forum: GUI: WPF und XAML

Hi,

richtig, Du warst nicht gmeint hypersurf, sondern JMano.

Zitat
Was meinst Du damit? Wenn ich Elemente im DoWork verändere, dann übernimmt der BG keinen Kontext Switch für mich.

Du hast natuerlich Recht, ich war zu ungenau in meiner Aussage. Ich meinte lediglich RunWorkerCompleted und ProgressChanged. Ich hatte vergessen, dass DoWork natuerlich auch ein Event ist und da muss man sich um den Kontextwechsel selber kuemmern, wenn man direkt auf UI Elemente zugreift.
Ich habe es immer so gehalten, dass ich aus dem DoWork selber keine UI-Manipulationen vorgenommen habe. In dem asynchron verarbeitenden BG-Worker habe ich lediglich die reine UI-unabhaengige Algorithmen ausgefuehrt. Ueber die ReportProgress-Methode dann Informationen weitergegeben. Ein iteressierter Abonnent hat sich auf dem ProgressChanged registriert, und dann entsprechend z.B. die UI aktualisiert.
So habe ich die Algorithmik frei von UI-Aktualisierung und vor allem dem Kontextwechsel. Das uebernimmt dann der BG fuer mich, wenn ich mit ProgressChanged-Event arbeite.
Der Abonnent, hier die UI, weiss am besten, was zu aktualisieren ist. So hat man beides schoen getrennt.
Natuerlich muss man sich noch etwas ueberlegen, wenn man mit ReportProgress arbeitet und dir der reine Zustand in Prozent nicht genuegt. Dafuer gibt es eine Ueberladung von ReportProgress, die noch einen UserState weitergibt. Dafuer verwendet man dann einen Progress Datencontainer (ist frei nach eigenen Anforderungen zu waehlen), der irgendwelche Nachrichten oder was auch immer enthaelt. Die UI-Seite entnimmt dann wieder diese Informationen und setzt den Progress, schreibt einen Zustand, etc.

Gruss,
DaMoe

Thema: Liste im Hintergrund (Thread?) abarbeiten
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

ja, man kann es ueber BackgroundWorker implementieren, wuerde ich aber nicht mehr verwenden. Es ist empfehlenswert die TPL bzw. die Task Klasse dafuer zu benutzen. Dazu nimmst Du noch die Progress<T> Klasse, die den Kontext Switch fuer Dich uebernimmt und einen Zustandsfortschritt reportiert.

@Hypersurf: Such einfach einfach mal nach TPL, Task<T>, Parallel.Foreach und Listen. Da wirst Du sicherlich etwas finden und daraus, dann ableiten koennen, wie du asynchrony und dann noch parallel Deine Liste verarbeitest
z.B. Parallel.Foreach

@hypersurf: Wenn man die UI-Elemente direkt aus dem BackgroundWorker veraendert, dann hast Du Recht. Man muss sich um den Kontext Switch kuemmern. Wenn man allerdings "nur" die Events aus dem BackgroundWorker verwendet, dann uebernimmt der BG den Kontext Switch fuer Dich.

Gruesse,
Moe

Thema: DevExpress GridControl mit Daten aus nTier-Architektur füllen: Kopfzeilen vorhanden, aber Grid leer
Am im Forum: GUI: Windows-Forms

Moin,

ich wuerde Dir empfehlen, falls Du bzgl. des DataBinding etwas ueber den Designer eingestellt hast, das rueckgaengig zu machen und einmal die Datenquelle, wie Du bereits selber versucht hast, aus dem Code zu setzen. Meine Erfahrung mit dem Databinding und dem DevXpress Grid ist, dass wenn Du den Designer verwendest, du beim "expliziten" Binding pro Column Einstellungen taetigen musst, d.h. wie Du bindest bzw. welcher Datentyp darunterliegt. Das kann manchmal zu dem Problem fuehren, dass keine Daten angezeigt werden.

Gruss,
DaMoe

Thema: Inhalt der TextBox wird erst nach 2maligem Beenden des Programms in eine .txt-Datei gespeichert
Am im Forum: GUI: Windows-Forms

Moin!

ich habe gesehen, dass Du die Instanz von Form_C3 (wird in "Menue" erzeugt) beim Klick auf OK in derselbigen form "versteckst" (Hide aufrufst). Wird denn bei Hide() ueberhaupt das Event FormClosing ausgeloest?

Gruss,
DaMoe

Thema: TIME_ZONE_INFORMATION (native) to TimeZoneInfo (managed)
Am im Forum: Rund um die Programmierung

Hallo,

Th69 hat Recht. Man kann sich das gut im .Net Code abgucken. Bei Reflection auf private Konstrukte wie z.B. hier den Konstruktor, egal ob von MS oder eigenem Code, waere ich immer sehr vorsichtig.

Nur am Rande: Man kann sich den Code sehr schnell und auch schick mittels der Microsoft Reference Source .Net 4.5.1 anschauen.

Gruss,
DaMoe

Thema: TIME_ZONE_INFORMATION (native) to TimeZoneInfo (managed)
Am im Forum: Rund um die Programmierung

Moin,

sag mal, hast Du schon mal hier geschaut Time_Zone_Information @ PInvoke

Nachtrag: Sorry, der Link wird Dir wahrscheinlich bei Deiner Frage zur "Konvertierung" nicht weiterhelfen.

Gruss,
DaMoe

Thema: EF Pocos modifizieren
Am im Forum: Datentechnologien

Hi darktower,

zu 2:

Schaut Dir mal an, was Ms dazu sagt.

Working with POCO Entities

Zu Deiner abschliessenden Frage, wie so ein Mapping aussehen wuerde:

Generate Dtos

bzw. gibt es sogar eine VS Extension

EntitiesToDtos

Gruss,
DaMoe

Thema: Primären Monitor per Programm auswählen
Am im Forum: Rund um die Programmierung

Hi Samy,

hilft Dir das weiter:

Primary Screen

Edit: Sorry, hatte ueberlesen, dass Du den PrimaryScreen veraendern moechtest. Dann wir Dir diese URL nicht weiterhelfen.

Gruss,
DaMoe

Thema: Charting Starthilfe
Am im Forum: GUI: WPF und XAML

Zitat
Wenns wirklich so "einfach" sein soll wie gezeigt, würd ich das selber zeichnen.

Davon wuerde ich erst einmal die Finger lassen. Man muss nicht immer das Rad von neuem erfinden. Soweit meine Meinung. Es mag immer "einfacher" anmuten, allerdings steckt der Teufel/Schwierigkeit im Detail
Zitat
Wenn ich nun meine Charts jede 500 Millisekunden aktualisieren will, ist das etwas Problematisch. Oder?

Ist es denn nun Fakt, dass das WPF Chart Dir Probleme bei der Aktualisierung Probleme bereitet? Hast Du es bereits getestet?

Bevor Du nun ZedGraph, Oxyplot oder gar eine eigene Implementierung anstrebst, wuerde ich Christoph1972's Vorschlag und Deine anfaengliche Idee aufgreifen:
Verwende WindowsFormsHost zusammen mit den Microsoft Charts. Ein Versuch ist es wert.

Gruss,
DaMoe

Thema: PPT Präsentations-Erstellung beschleuningen?
Am im Forum: Office-Technologien

Moin zusammen,

@ Abt:

Zitat
Funktioniert ähnlich wie Dein aktuelles Vorhaben; aber halt über COM.

Worauf beziehst Du diese Aussage?

@emtcho:
Von dem Code her, welchen Du gepostet hast, mutet es ein wenig merkwuerdig an, dass das PPT Window gesucht, gelockt und dann "irgendwie" aktualisiert wird. Natuerlich kenne ich Deine Anforderung im Detail nicht.
Muss denn ubedingt das PPT Fenster geoffnet sein, damit Daten dann generiert werden, oder ist es nicht besser, nachdem Du die Daten generiert hast, daraus eine PPT Praesentation zu erstellen?

NetOffice ist nicht OpenXML, das stimmt. OpenXML ist ein Standard, welcher von "aktuelleren" Office Applikationen umgesetzt wurde. Mit dem Open XML SDK for Office von Microsoft, kann man man ohne ein installiertes Office, alle auf dem OpenXML Standard basierten Office Dateien (docx, pptx, xlsx, etc.) zugreifen und bearbeiten.
Natuerlich kann man auch auf dem "guten, alten" Interop arbeiten, welches wiederum ein installiertes Office Produkt voraussetzt:

PPT Interop

Bzgl. der Performance, kommt es natuerlich darauf an, wie Du die Daten generierst und dann auch in die Praesentation schreibst. Ich sehe nicht, wie Deine Daten generierst und in die Slides der PPT Praesentation schreibst.
Es kann natuerlich sein, dass Du mit dem OpenXML SDK nicht schneller bist.
Wie gross werden denn Deine PPT Praesentationen ungefaehr?

Gruss,
DaMoe

Thema: PPT Präsentations-Erstellung beschleuningen?
Am im Forum: Office-Technologien

Moin emtcho,

sag mal, ist es nicht irgendwie umstaendlich, so wie Du momentan eine PowerPoint Praesentation erstellst?

In wieweit waere bspw. das OpenXML SDK von Microsoft fuer Dich, um direkt ueber Code deine PPTX zu erstellen? Man muss dazu sagen, dass nur das "neuere" pptx Format unterstuezt wird.

Hat zwar nichts mit Charts zu tun, zeigt aber auf, wie man programmatisch auf PowerPoint zugreifen kann:
PowerPoint OpenXML

Gruss,
DaMoe

Thema: Ordner Rekursiv auf NAS schreiben mit Progressbar mittels Stream
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi!

Zitat
Das funktioniert soweit auch ganz gut nur das die Progressbar sich nicht aktualisiert (Die Progressbar wurde Invoked).

Siehe hier:
Backgroundworker

Hast du bspw. das Property WorkerSupportsCancellation auf true gesetzt?

Gruss,
DaMoe

Edit: Ich meinte natuerlich WorkerReportsProgress und nicht WorkerSupportsCancellation.

Thema: Änderung an ObservableCollection-Items mitbekommen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin zusammen,

ich frage mich, warum die ObservableCollection<T> anstatt der BindingList<T> verwendet wird im Hinblick auf das urspruenglich beschriebene Einsatzszenario?

Zitat
Wenn der Elementtyp von sich aus INotifyPropertyChanged implementiert, löst die originale ObservableCollection bei Änderungen an "ihren" Elementen von alleine die nötigen Events aus.

@herbivore: Entweder ich habe Dich falsch verstanden, allerdings loest die ObservableCollection<T> selbst meines Wissens nach keine Notifikation aus, wenn eins der enthaltenden Elemente, auch wenn es INotifyPropertyChanged impementiert, sich aendert (so auch die MSDN). Es werden lediglich Aenderungen an der Liste selbst entsprechend propagiert.
Zitat
Represents a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed.

MFG,
DaMoe

Thema: alles aus einem file löschen bis auf zwei (oder auch mehr) unterschiedliche(!) Ausnahmen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

zerteile Deine Problemstellung in einzelne Fragestellungen:

- Wie lese ich eine Textdatei Zeile fuer Zeile ein?
- Wie speichere ich eine Veraenderte Datei ab?
- Wie finde ich einen Teilstring in einem String?

Textdatei einlesen und abspeichern solltest Du hier im Forum oder auch per Google relativ einfach finden. String Suchmethoden findest Du in der MSDN.

Gruss,
DaMoe

Thema: zu schnelles/häufiges Aktualisieren der Oberfläche verhindern
Am im Forum: GUI: Windows-Forms

Hallo!

Ich wuerde jetzt erst einmal fragen, was sind das Events und warum kommen diese so haeufig? Ist es wirklich notwendig, dass diese so haeufig hochkommen?

Dann faellt mir natuerlich noch das Stichwort DoubleBuffering ein:
DoubleBuffering

Gruss,
Moe

Thema: XML lesen in der Hierarchie
Am im Forum: Datentechnologien

Hi!

Nur noch als kleiner Zusatz zu den existierenden Vorschlaegen: Mittels XDocument laesst sich die Aufgabe auch sehr schoen im Zusammenhang mit Linq loesen:

XDocument Class

Gruss,
DaMoe

Thema: BackgroundImage testen, ob das gewünschte Bild angezeigt wird?
Am im Forum: Grafik und Sound

Moin zusammen,

ich habe vor einiger Zeit den Vergleich fuer einen Test folgenderweise umgesetzt:


 public static bool IsImageContentEqual(Image a, ImageFormat formatA, Image b, ImageFormat formatB)
        {

            using (var imgStreamA= new MemoryStream())
            {
                using (var imgStreamB = new MemoryStream())
                {
                    a.Save(imgStreamA, formatA);
                    b.Save(imgStreamB, formatB);

                    var bytesA = imgStreamA.ToArray();
                    var bytesB = imgStreamB.ToArray();

                    if (bytesA.Length != bytesB.Length)
                    {
                        return false;
                    }

                    for (int i = 0; i < bytesA.Length; i++)
                    {
                        if (bytesA[i] != bytesB[i])
                        {
                            return false;
                        }
                    }
                }
            }

            return true;
        }


Gruss,
DaMoe