WPF-Alternative zur FastColoredTextbox

  • WPF

Es gibt 47 Antworten in diesem Thema. Der letzte Beitrag () ist von MichaHo.

    Ok, sehe ich mir dann gerne mal an.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Nur nicht erschrecken, ich hab das Projekt so aufgebaut wie dein Wpf Notes Test Projekt was oben verlinkt wurde. (Bzw. In dem anderen Thread von flori) und erstmal alles in einem einzelnen WPF Projekt, wie ich das nachher auseinander fummel, weis ich ja schon :)
    "Hier könnte Ihre Werbung stehen..."
    Kein Problem, soll ja jetzt nur als Beispiel dienen um bez. des TabControls Licht ins Dunkel zu bekommen.

    Grüße
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hi @Nofear23m habs gestern nicht mehr geschafft.
    anbei nun das Projekt welches ich so gebaut habe, wie ich es anhand deiner Antwort verstanden habe.

    2 Probleme hab ich dabei, 1. das aktuelle Tab wird nicht selektiert, weil die SeletedItem Property nicht im MainViewModel ist, sondern im DirectoryItemViewModel.
    2. Wenn ich ein Tab schließe, wirft mir der TextEditor eine Exception weil der Text dann null ist, ist ja OK, aber alle Bemühungen das abzufangen sind gescheitert.
    Dateien
    "Hier könnte Ihre Werbung stehen..."

    MichaHo schrieb:

    weil die SeletedItem Property nicht im MainViewModel ist, sondern im DirectoryItemViewModel

    Warum gibst du sie dann nicht dorthin? Dort gehört sie ja auch hin. Die SelectedIrgendwas muss immer auf die selbe Ebene wie die Auflistung. Innerhalb eines Items der Auflistung hats ja wenig sinn.

    MichaHo schrieb:

    aber alle Bemühungen das abzufangen sind gescheitert

    Warum? textEditor.Document.Text = e.NewValue is null ? string.Empty : e.NewValue.ToString();

    Anbei das "verbesserte" Projekt. Puhh, ich bekomme von C# Augenschmerzen. Sooo viele geschweifte Klammern. :S

    Als kleines "Zuckerl" habe ich dir implementiert das wenn du ein File auswählst welches bereits geöffnet ist wird der jeweilige Tab markiert anstatt es wieder neu zu öffnen.

    Grüße
    Sascha

    PS: Habe das AvalonEdit nun als NuGet eingebunden anstatt als Verweis.
    Dateien
    • SnippsCode.zip

      (302,21 kB, 100 mal heruntergeladen, zuletzt: )
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Nofear23m schrieb:

    Als kleines "Zuckerl" habe ich dir implementiert das wenn du ein File auswählst welches bereits geöffnet ist wird der jeweilige Tab markiert anstatt es wieder neu zu öffnen.


    Danke Dir, das wollte ich ja mit SelectedItem realisieren:

    C#-Quellcode

    1. if(_tabItems.Any(h => h.Header == newTab.Header))
    2. {
    3. SelectedItem = newTab;
    4. return;
    5. }
    "Hier könnte Ihre Werbung stehen..."
    Hätte aber nicht funktioniert.

    Hier erstellst du (weiter oben im Code) das Objekt newTab.
    Fragst die Auflistung ob es ein Objekt gibt welches den selben Header hat (Header finde ich auch zu wenig als vergleich, sollte schon der komplette Pfad sein - es kann ja gleich Dateinamen geben).

    OK, aber sagst dann das SelektedItem = newTab ist. Also ein tab welches gar nicht in der Auflistung ist (haste ja nicht hinzugefügt), wie soll er also was selektieren was nicht da ist?
    Deshalb musst du dem SelectedItem eben das in _tabItems gefundene Objekt (und genau dieses) übergeben.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Au mann... ja, manchmal sind zu viele Bäume im Wald....

    Mir war nicht bewusst, das man die eigentliche Logik in die übergeordneten ViewModels baut und dann gewisse Dinge durchreicht, die weiter unten benötigt werden.
    Ich denke immer, wenn ich in der View etwas benötige muss es auch in diesem einen ViewModel sein...

    Ich schau mal ob ich das im Hauptprojekt (das besteht ja aus mehr Usercontrols und ViewModels) da hin bekomme...
    "Hier könnte Ihre Werbung stehen..."