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 michlG
Thema: Window + Usercontrol + MVVM = ???
Am im Forum: GUI: WPF und XAML

Hallo,

du kannst dazu entweder das Ancestor-Binding verwenden um vom UserControl auf ein Property im Parent zu binden.
Siehe dazu: How do I use WPF bindings with RelativeSource?

Das scheint aber eine etwas eigenartige Struktur zu sein. Denn dein UserControl sollte eigentlich gar nicht wissen wer sein Parent ist, bzw. nicht von Diesem in irgend einer weise abhängig sein.
Damit hast du eine nicht mehr so gut durchschaubare Struktur die schnell zu Fehlern und Problemen führen kann.

Besser ist da wenn du im deinem UserControlVM die nötigen Properties zur Verfügung stellst. Diese kannst du von deinem MainVM aus setzen.
Wenn du an diese ein Binding manchen willst dann musst du ein DependencyProperty (anstatt einem normalen) verwenden.

Grüße
Michael

Thema: Window + Usercontrol + MVVM = ???
Am im Forum: GUI: WPF und XAML

Hallo,

also am einfachsten ist wenn du einfach den View über ein DataTemplate laden lässt.
Somit arbeitest du immer nur mit den einzelnen VMs und es wird automatisch der richtige View angezeigt.
Dabei kennen sich die einzelnen Views untereinander auch nicht (was normalerweise auch nicht nötig ist).

Siehe dazu: Linking View to ViewModel using DataTemplate for a WPF Application using the MVVM pattern

Oder habe ich dein Problem nicht richtig verstanden?

Grüße
Michael

Thema: Window + Usercontrol + MVVM = ???
Am im Forum: GUI: WPF und XAML

Hallo GinoBambino,

also normalerweise ist das so dass die ViewModels die Views gar nicht kennen.
D.h. du lädst einfach dynamisch zum VM den passenden View.

In deinem Fall wäre es doch so dass das UserControlVM ein Element in deinem MainVM ist, oder?
Denn dann hast du ja eh eine Instanz vom UserControlVM und kannst dann im MainVM darauf zugreifen.

Falls diese sich gar nicht kennen bietet sich evtl. das Mediator Pattern un

Grüße
Michael

Thema: BackgroundWorker, MMTimer & GUI
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

das Problem ist dass deine DoWork Methode lange schon fertig ist bis du das Timer-Tick kriegst und damit dann den Progress festlegen willst
D.h. der BackgroundWorker hat seine Arbeit schon erledigt (DoWork ist fertig) und du willst später erst sagen. So jetzt habe ich 10% gemacht, was nicht sein kann da er schon fertig hat.

Irgendwie ist der gesamte Code irgendwie sehr schwierig überschaubar. Sind zwar nur ein paar Zeilen aber wirklich strukturiert wirkt das nicht.
Statt den BackgroundWorker kannst du einfach einen Thread verwenden. In deiner Working_Hard Klasse kannst du ein Event einbauen welches du schmeisst wenn sich der Fortschritt ändert. Dieses Event abonnierst du im MainWindow und gibst dann den Wert auf der GUI aus.
Du darfst dabei aber nicht das Invoken vergessen da du dich in einen anderen Thread befindest.

Grüße
Michael

Thema: Ordnername aus dem eingegebenen Textbox erstellen mit der Programmiersprache C#
Am im Forum: GUI: Windows-Forms

Hallo Adiranos,

willkommen bei myCSharp.de

Bitte beachte [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1
Wir setzen hier ein gewisses Grundwissen und etwas Eigeninitiative voraus.

Arbeite dich erstmal mit einen C# Buch oder ähnlichem in die Thematik ein. Dann fällt dir das ganz leicht.
Siehe:

Grüße
Michael

Thema: ViewModels in App.xaml registrieren
Am im Forum: GUI: WPF und XAML

Hallo Doltsche,

irgendwie muss man die ViewModels ja registrieren.
Ich verwende das Cinch V2 Framework und da registriert man die einzelnen ViewModels / Services über einen BootStrapper die Assemblies angeben welche er nach ViewModels / Services durchsuchen soll.
Dann macht er den Rest automatisch. Somit muss man nicht bei jedem neuen ViewModel alles nachtragen.

Grüße
Michael

Thema: Zwei Bindings einen Objekt zuweisen dynamisch
Am im Forum: GUI: WPF und XAML

Hallo,

ja das ist Ähnlich.
Aber der Unterschied ist dass du dann auch das Execute hast. D.h. du must nicht das Click Event abonnieren sondern kannst das auch direkt mit dem Command machen.
Damit hast du den Vorteil dass du keine Abhängigkeiten zwischen Gui und Code hast.

Wozu machst du das Binding im Code? Das ist viel umständlicher..

Grüße
Michael

Thema: Zwei Bindings einen Objekt zuweisen dynamisch
Am im Forum: GUI: WPF und XAML

Hallo sicarius,

für so einen Fall nimmt man meistens Commands.
D.h. dein ViewModel definiert ein Command an welches dein Button gebunden wird.
Im Command kannst du über CanExecute festlegen ob dein Command ausgeführt werden kann (also ob deine Bedingungen erfüllt sind).
Der Button wird dann automatisch dementsprechend aktiviert / deaktiviert.

Wenn du das nicht willst dann kannst du das was du da machen willst über ein MultiBinding (mit MultiBindingConverter) lösen oder du nimmst dafür einen Trigger. Möglichkeiten gibt es viele ;)

Grüße
Michael

Thema: Wer wird Europameister 2012? (Auswahl unter den Teilnehmern der Gruppenphase)
Am im Forum: Smalltalk

Ich habe auf Italien getippt.
Spanien war gestern zwar etwas stärker, aber die Vorstellung an sich war nicht schlecht.

Thema: [erledigt] DataGrid CellEditingTemplate mit "Overlay" panel
Am im Forum: GUI: WPF und XAML

Hallo,

du kannst einfach ein CellTemplate für dein DataGrid erstellen.
Dort kannst du dann deinen ColorPicker definieren.
Somit wird dieser in der Zelle angezeigt.

Damit es in Form eines Popups über das DataGrid liegt kannst du es einfach in einen Popup-Block legen.
Google einfach ein bisschen dann findest bestimmt ein Beispiel für ein Popup im DataGrid

Grüße
Michael

Thema: Visual Studio 11 Beta ==> Visual Studio 2012 RC ==> Release ==> Updates
Am im Forum: Szenenews

Hallo zusammen,

ich habe das VS 2012 Ultimate mit der ISO auf Windows 8 RP installiert
Hat alles ohne Probleme funktioniert.

Ich muss dazu sagen dass das VS 2012 nach meinem Gefühl sehr viel schneller als das VS 2010 ist. Klar, ich habe den ReSharper noch nicht installiert.
Aber wenn man sieht wie schnell das die Solutions geladen werden. Auch bei 20 Projekten ist das VS inklusive Solution innerhalb ein paar Sekunden geladen.

Abgesehen von ein paar kleinere Bugs funktioniert das VS auch ohne Probleme.
Build ist auch um längen Schneller (gefühlt sicherlich 3-4 mal schneller). Wenn ich mich nicht irre dann wird das nun ja Multicore gemacht.

Was mir noch negativ aufgefallen ist dass mein WPF Projekt welches unter Windows 7 (.NET 4) ohne Probleme angezeigt wird, auf Windows 8 (.NET 4) nicht korrekt angezeigt wird.
Habe in den ListBoxen den Highlightbrush gesetzt. Der wird ignoriert, Cursor in TextBoxen ist leicht versetzt und sonst noch ein paar Kleinigkeiten.

Aber ansonsten macht das Windows 8 RP und VS 2012 RP wirklich einen sehr guten Eindruck. Ich benutze nun privat diese Kombination und bin recht zufrieden.

Grüße
Michael

Thema: Visual Studio 11 Beta ==> Visual Studio 2012 RC ==> Release ==> Updates
Am im Forum: Szenenews

Hallo,

ich bin seit einem Jahr im Bizspark angemeldet.
Ein startup Unternehmen bekommt da eigentlich alles von MS gratis.
Von VS Ultimate über die ganzen Betriebssyteme, Server, TFS etc.

Ich habe absolut keinen Cent an MS gezahlt. Registriert, meine Firmendaten angegeben ein paar Wochen gewartet und dann den Zugriff bekommen.
Man muss halt ein paar Kriterien erfüllen, aber die sollten für ein Startup alle kein Problem sein

Das ist jetzt mal für 3 Jahre gültig. Anschließend kann man das wohl irgendwie verlängern. Aber dazu muss ich mich dann erst noch im Detail informieren.

Grüße
Michael

Thema: ByteArray zu Hex-String und zurück
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo prakti08,

um einen String in einen Byte[] umwandeln zu können musst du das richtige Encoding verwenden.
D.h. du kannst sowas machen Encoding.ASCII.GetBytes(myString);

Grüße
Michael

Thema: Textencoding von beliebigen Dateien ermitteln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Taladan,

du musst die Datei da schon mit den richtigen Encoding auslesen.
D.h. wenn du sie mit einen falschen Encoding ausliest dann nützt dir nachher das Konvertieren auch nichts mehr.

Wenn du herausfinden willst um was für ein Encoding es sich handelt kannst du hier gucken: How can we determine what is the file's curent encoding?
Beim Auslesen der Datei kannst du natürlich das Encoding angeben.
Guckst du hier: File.ReadAllText-Methode (String, Encoding)

Grüße
Michael

Thema: [gelöst] Anwendung startet nicht mehr mit vshost.exe
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo nki,

gehe mal im Menü auf Build, Configuration Manager und setze dann die Active Solution Configuration auf Debug.
Ich kann dir zwar nicht sicher sagen dass es daran liegt, aber das könnte schon sein :)

Grüße
Michael

Thema: Combobox selected Value
Am im Forum: GUI: WPF und XAML

Hallo Taladan,

das Property für den SelectedDSN kannst du dir sparen.
Nimm einfach eine ObservableCollection anstatt der List, dann kannst du dir über die CollectionViewSource das CurrentItem rausholen.

Zudem würde ich die Daten nicht im Getter von den AllDSN holen. Besser ist wenn du das einmal machst und die Daten dann der Liste zuweist.
Natürlich musst du dann auch das PropertyChanged-Event noch auslesen damit die ComboBox mitbekommt dass sich was geändert hat

Grüße
Michael

Thema: Fortschritt beim Kopieren einer Datei byteweise mitbekommen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo scarpall,

wenn du die File.Copy Methode vom .NET Framework verwendest dann bekommst du kein Feedback.
D.h. diese Methode hat keine Eigenschaft welche dir den Progress mitteilt.

Kurz gesagt ist es aber nur ein Wrapper um den Win32 API call "CopyFile" in der kernel32.dll
Diese Win-Api Funktion bietet die Funktion für den Progress.
D.h. du kannst dir den Wrapper selbst so schreiben dass du den Progress bekommst.
Guckst du hier: Kernel32.CopyFileEx

Grüße
Michael

Thema: ListBox - SelectionChanged, verschiedene Items durch Vererbung
Am im Forum: GUI: WPF und XAML

Hallo jaipur,

talla wollte damit sagen dass du nicht für jeden Typ musst ein neues Fenster erstellen.
Es reicht wenn du für deine Typen Templates erstellst, welche dann dynamisch geladen werden je nach dem was für einen Typ du übergibst.

Da gibst in Internet viele Tutorials dazu: z.B. A guided tour of wpf - Data Templates and Triggers

Grüße
Michael

Thema: Visual Studio 11 Beta ==> Visual Studio 2012 RC ==> Release ==> Updates
Am im Forum: Szenenews

Hallo,

hier ist der DownloadLink dazu Download Windows 8 Consumer Preview

Grüße
Michael

Thema: [gelöst] Wie übermittle ich ein Passwort möglichst sicher an eine (externe) Textbox
Am im Forum: Rund um die Programmierung

Hallo Grantig,

das Ganze ist schon relativ sicher.
Klar, wenn ein Keylogger oder Ähnliches läuft dann hast du ein Problem.
Aber da hast du auch ein Problem wenn du das PW physisch eintippst.

Der Vorteil von dieser Lösung ist dass es relativ einfach zu realisieren ist und fast mit jeder Form von Passworteingabe zurecht kommt.

z.B. KeePass macht das genauso. mit der Tastenkombination STRG+V springt er automatisch zu den zuletzt fokussierten Fenster tippt den Username, haut auf Tab und tippt das Passwort :)

Grüße
Michael

Thema: [erledigt] Leistungsstarker und kostengünstiges Notebook für die Entwicklung
Am im Forum: Smalltalk

Hallo Leute,

ich habe einen Acer Aspire 4820 TG mit einem i7, 4GB Ram und die Intel SSD 160GB (glaube die heißt M25).
Seit 1,5 - 2 Jahren habe ich das Teil bereits.
Klar, es fällt nicht in die Kategorie Arbeitsnotebook. Aber ich nehme es immer zum Arbeiten und bin damit mehr als zufrieden.

Auch bei Zugfahrten von 3-4 Stunden hält der Akku durch. Und dabei kann ich das Display auch noch auf einer angenehmen Helligkeit haben.

Das Display hat 14'' was meiner Meinung eine sehr angenehme Größe ist (hab schon so einiges durchprobiert).

Ein bisschen nervig ist dass ich nicht das matte Display habe. Aber im Zug ziehe ich die Vorhänge zu (sofern es denn welche gibt). Oder ich muss halt mit der Helligkeit etwas hochfahren dann ist das auch nicht so schlimm

Preislich war das Teil vor 1,5 Jahren 1300€. Jetzt ist es bestimmt schon unter 1000€ zu haben.

Grüße
Michael

Thema: Für float array werden im Direktfernster falsche Werte angezeigt
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

das Problem liegt da ziemlich sicher an dem Direktfenster bzw. an der Art wie es bedient wurde.

Entweder du debuggst durch den Code und schaust dir dann die Werte der Variablen an (was da steht ist auch in der Variable drinnen), oder du baust ein paar ausgaben mit Console.WriteLine ein.

Dann wirst du auch die -0.013..... sehen

Gruß
Michael

Thema: Zahlen (Ziffernfolgen) in Zahlwörter (z.B. fünfundsiebzig) umwandeln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo marioshaste,

was meinst du mit Textbox2 in Buchstaben?
Wie willst du eine Zahl in Buchstaben umwandeln bzw. was stellst du dir da als Ergebnis vor?

Bitte beachte: [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1

Grüße
Michael

Thema: Kann ich in einer Form, Variablen von einer anderen Form aufrufen oder verknüpfen?
Am im Forum: GUI: Windows-Forms

Hallo Golli18,

willkommen bei myCSharp.de

siehe [FAQ] Kommunikation von 2 Forms
Das zählt aber zu den Grundlagen welche wir hier voraussetzen.
Siehe: [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1

Mit Hilfe des oben verlinkten Thread schaffst du es nun locker selbst

Grüße
Michael

Thema: DataGrid RowDetails über CheckboxColumn erweitern/verstecken
Am im Forum: GUI: WPF und XAML

Hallo,

ah ok. Ich habe da was überlesen.

Siehe WPF DataGrid RowDetailsTemplate Visiblity bound to a property
oder WPF DataGrid RowDetailsTemplate Visibility binidnig to a property with xaml only

Ich habe jetzt noch nicht direkt selbst was damit gemacht. Aber des scheint recht simple zu sein.

Grüße
Michael

Thema: Schließen von Form soll Aktivitäten eines anderen Objekts abbrechen
Am im Forum: GUI: Windows-Forms

Hallo PeterRRR,

dein Query Objekt sollte nie auf die Form zugreifen können.
Es sollte überhaupt nicht wissen dass es ein Form gibt.

Am Besten löst du das mit Events. D.h. vom Form aus startest du den Refresh in dem Query Objekt. Sobald dieses fertig geladen hat feuert es ein Event.
Danach wird dieses Event gehandelt wo es gebraucht wird, nicht mehr und nicht weniger.

Am Besten baust du im Query-Objekt noch eine Funktionalität ein um das Laden der Daten abbrechen zu können. Damit du nicht unnötigerweise im Hintergrund weiterlädst / verarbeitest.

Das System.IDisposable Interface kannst du da auch implementieren und verwenden.

Grüße
Michael

Thema: Welche Projektstruktur verwendet ihr für eure Projekte?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

also ich mache das fast identisch mit WinSharp93.
Die Solutions kommen in einen Ordner und dann die einzelnen Projekte jeweils in einen eigenen Ordner mit dem ProjektNamen.
Dabei werden die Projekt-Ordner nicht verschachtelt.

Grüße
Michael

Thema: DataGrid RowDetails über CheckboxColumn erweitern/verstecken
Am im Forum: GUI: WPF und XAML

Hallo Taki Haki,

du kannst die Checkbox ja auch in deinem DataTemplate hinzufügen.
Dann kannst du auch darin einfach die IsChecked-Eigenschaft verwenden um das Panel einzublenden / auszublenden.

Grüße
Michael

Thema: gleicher Methodenaufruf bei unterschiedlichen events
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Coooder,

du kannst die gleiche Methode auf mehrere Events registrieren.
Das ist möglich sofern die verschiedene Events alle die gleichen Parameter erfordern.

Falls das nicht möglich ist dann kannst du ja einfach von der einen Methode aus eine gemeinsame Methode aufrufen.

Aber ziemlich sicher brauchst du das gar nicht. Weil man kann in WPF eigentlich alles mit Binding / Trigger usw. machen ohne dass man dann das SelectionChange oder Checked Event benötigt (jedenfalls in den meisten Fällen)

Gruß
Michael

Thema: DateTime (nur) sekundengenau subtrahieren
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo dietbeck,

wie willst du denn zwei DateTime-Objekte voneinander subtrahieren?
z.B. 05.02.2011 - 01.01.2010?
`
Wenn du einfach die Differenz haben willst dann kannst du zwei DateTime-Objekte einfach mit einem - subtrahieren. Damit erhälst du ein TimeSpan Objekt.
Wenn du die TotalSeconds-Eigenschaft verwendest dann erhälst du auch noch die Differenz zwischen den beiden DateTimes in Sekunden :)
Damit kannst du dann weiterarbeiten.

Gruß
Michael