Support, Anregungen, Wünsche zur Tutorialreihe <WPF lernen/>

  • WPF MVVM

Es gibt 448 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    So Leute

    Lange hats gedauert - hatte leider sehr viel um die Ohren, versuche nun drann zu bleiben.

    Neues Kapitel inkl. Video Online.

    Als nächstes sind DependencyProperties dran. Schreibt mir dich bitte falls Ihr hierzu spezielle Fragen habt, dann kann ich genauer darauf eingehen. :thumbsup:

    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. ##

    Als nächstes sind DependencyProperties dran
    Schreibt mir dich bitte falls Ihr hierzu spezielle Fragen


    Ich würde gerne genau wissen wann man diese
    benötigt.
    Wie wichtig sind diese nachher in MVVM oder zählen diese Propertys
    zu Kategorie "nice to know"
    Und bitte Zwei Eigenschaften weil alle Tuts
    die ich gefunden habe behandlen immer nur eins.
    Danke für deine Mühe und Zeit
    Gruss Amro
    Danke Amro, habe ich aufgenommen, werde mir etwas einfallen lassen was an dein Beispiel von Gestern angelehnt sein wird.

    Danke für den Input.

    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. ##

    Hallo Leute

    Ein neues Kapitel ist Online. Diesmal nur Theorie. Das muss leider sein da man Dependency Properties wirklich verstehen sollte. Vorallem weil dadurch auch Binding "etwas" klarer wird.
    Also bitte auch dieses Kapitel durchmachen, sonst steht Ihr beim nächsten vermutlich an ner Wand.

    Kapitel 2.1.5 bzw. 2.1.5.1

    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. ##

    Hallo

    Und heute wieder ein Kapitel, nun gibts Dependency Properties in der Praxis. Beim nächsten mal werden wir Dependency Properties in einem UserControl verwenden.

    Kapitel 2.1.5.2


    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. ##

    Wurde Binding im Tutorial zu wenig behandelt? 8
    1.  
      Ja, aber das kann ja jeder in einem seperatem Thread Fragen (3) 38%
    2.  
      Ich finde es benötigt noch ein Kapitel mit speziellen Bindingtechniken (2) 25%
    3.  
      Finde ich schon, bitte nochmals hier im SupportThread auf ein paar Dinge genauer eingehen (2) 25%
    4.  
      Ne, alles gut - ist nur Übungssache (1) 13%
    Ich sehe immer wieder vermehrt Fragen bez. Binding über mehrere Klassen hinweg.

    Meine Frage nun, sind das einzelfälle oder wurde das Thema im Tutorial nicht genug behandelt?
    Wenn nicht, wäre interessant WO die Missverständnisse auftreten. Das System im allgemeinen oder spezielle Dinge wie Master-Detail oder Binding an übergeordnete Klassen, usw.

    Evtl. kann ich ja in der Tutorialreihe ein weiteres Kapitel über Binding dazwischenschummeln, aber eben nur wenn notwendig.

    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. ##

    Hallo Leute. Spät ist es schon.

    Ein neues Kapitel ist Online. Der letzte Teil über Dependency Properties. Falls noch Fragen offen sind oder ich noch auf etwas eingehen soll bitte sagen, noch kann ich ein Kapitel dranhängen, später wirds schwierig.

    Einige wenige haben ja an der Umfrage teilgenommen. Danke hierfür.
    Es steht ja (wenn ich meine Stimme wegnehme) kommplett ausgeglichen. (2-2-2-1)

    Hmmmm :whistling:
    Dann würde ich einfach sagen, da ich denke man lernt es so am besten, wenn euch etwas unklar ist macht einfach ein einfaches Beispiel und stellt es entweder hier in den SupportThread ein oder in einem seperatem Thread. Ich werde versuchen dann genau zu erklären um was es geht. Ich denke an einem Beispiel welches bei euch im Kopf "rumschwirrt" kann man es dann auch am besten Nachvollziehen.

    Wünsche viel Spass mit dem Kapitel und dem Video dazu.
    Ich würde mich über ein Like und/oder ein Kommentag riesig freuen.

    Liebe 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. ##

    Kann es sein das beim erstellen oder schneiden des Videos zu den Dependecy Properties ein kleines missgeschick passiert ist?
    Bei ca. 18 min läuft es ziemlich schnell als wenn du dich schon verabschieden möchtest. Redest aber munter weiter. =)
    Ansonsten wieder ein Top Video. :thumbup: :thumbsup:
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    @Akanel da hast du recht. Ist wohl was passiert beim Enkodieren mit Adobe Premiere.

    Da aber da dann nicht mehr wirklich viel zu sehen ist (nach ich glaube einer Minute läuft es dann eh wieder normal) werde ich es jetzt so lassen. Werde aber bei den nächsten Videos besser darauf achten.
    Danke für die Info.

    Freut mic das es dir gefällt, ist ein wichtiges Thema. Bei Fragen kannst du dich ja gerne melden.

    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. ##

    Ändern brauchst du es nicht, wollte nur darauf Hinweisen, da es noch niemand gemacht hat. Beeinflusst den Inhalt des Videos ja nicht wirklich. Also alles Gut. :)
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Hallöle Leute

    Heute gibts wieder was. Gleich zwei Kapitel - MarkupExtensions können also in einem rutsch abgehandelt werden.

    Kapitel 2.1.6.1
    Kapitel 2.1.6.2


    Als nächstes gehts mit Attached Properties weiter :thumbsup:

    Schöne 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. ##

    Hallöchen

    Gibt es zu den DependencyProperties oder den MarkupExtensions Fragen?

    Falls ja würde ich diese gerne vor hochladen des nächsten Kapitels abarbeiten. Gerne auch zu vorigen Kapiteln.

    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. ##

    Hallo @VB1963

    Ausgezeichnete Frage. OutOfTheBox nicht. Es gibt Wege allerdings sind diese eher sehr spektakulär.
    Wenn wir ein Kapitel zurück gehen (DependencyProperties) dann haben wir gelernt das Binding nur auf einem Object welches von DependencyObject erbt funktioniert.

    Da die Basisklasse MarkupExtension nicht von DependencyObject erbt unterstützt diese keine DependencyProperty. Somit kann kein Binding angewandt werden.
    Wenn ich Binding benötige würde ich zu einem Converter greifen.

    Es gibt einen recht einfachen Weg mittels MarkupExtension und Converter
    Hier können auch mehre Bindings vollzogen werden und auch Binding mit Fixen Parametern kombiniert werden:

    VB.NET-Quellcode

    1. Namespace MyWpfExtensions
    2. Public Class HelloWorldExtension
    3. Inherits Markup.MarkupExtension
    4. Private _binding As Binding
    5. Public Sub New(para As Binding)
    6. _binding = para
    7. End Sub
    8. Public Overrides Function ProvideValue(ByVal serviceProvider As IServiceProvider) As Object
    9. _binding.Converter = New BindingToStringConverter()
    10. Dim provValue = _binding.ProvideValue(serviceProvider)
    11. Return provValue
    12. End Function
    13. End Class
    14. End Namespace


    Der Converter:

    VB.NET-Quellcode

    1. Public Class BindingToStringConverter
    2. Implements IValueConverter
    3. Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
    4. Return value.ToString & " mit Zusatztext"
    5. End Function
    6. Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
    7. Throw New NotImplementedException()
    8. End Function
    9. End Class


    Anwendung:

    XML-Quellcode

    1. <StackPanel>
    2. <TextBox Text="{ext:HelloWorld {Binding ElementName=txtTest,Path=Text}}"/>
    3. <TextBox x:Name="txtTest" Text="TestText"/>
    4. </StackPanel>


    Ergebnis:


    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. ##

    Wobei es mich selbst gerade etwas wurmt. Ich glaube ich versuche eine bessere Lösung zu finden. :whistling:
    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. ##

    Ich habe eine kleine Anmwerkung zu dem Teil "Auf die aktuelle Cultur eingehen".

    ich habe gerade versucht das einzusetzen.

    VB.NET-Quellcode

    1. Imports System.Globalization
    2. Imports System.Threading
    3. Imports System.Windows.Markup
    4. Class Application
    5. Private Sub Application_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
    6. Dim currentCulture As CultureInfo = CultureInfo.CurrentCulture
    7. Thread.CurrentThread.CurrentCulture = currentCulture
    8. Thread.CurrentThread.CurrentUICulture = currentCulture
    9. LanguageProperty.OverrideMetadata(GetType(FrameworkElement), New FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)))
    10. End Sub
    11. ' Ereignisse auf Anwendungsebene wie Startup, Exit und DispatcherUnhandledException
    12. ' können in dieser Datei verarbeitet werden.
    13. End Class


    Hierbei wird mir noch immer die letzte Zeile angemeckert.

    VB.NET-Quellcode

    1. LanguageProperty.OverrideMetadata(GetType(FrameworkElement), New FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)))


    Ich habe es dann entweder Vollqualifiziert angegeben:

    VB.NET-Quellcode

    1. FrameworkElement.LanguageProperty.OverrideMetadata(GetType(FrameworkElement), New FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)))

    oder aber den Import gesetzt:

    VB.NET-Quellcode

    1. Imports System.Windows.FrameworkElement

    und es funktioniert.

    Jetzt meine Frage: War das eine C&P Bremse und warum kann mir Intellisense dabei nicht helfen?
    Denn der Import wäre glaube ich die einfachste Lösung, wird mir aber nicht vorgeschlagen, siehe Bildchen.

    Edit: Gibt es dazu auch einen DesigntimeSupport? Zur Designzeit habe ich ja standardmässig die en_Culture:
    Edit2: klar, in die jeweilige Ressource des Usercontrols packen.
    Bilder
    • Anmerkung 2019-06-10 084333.png

      83,87 kB, 1.414×517, 12 mal angesehen
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Akanel“ ()

    Ich hab's, wie in NoFears Beispieldatei, in die MainWindow - Klasse nach InitializeComponent(); eingebaut, IntelliSence hat mir die Importe korrekt vorgeschlagen, alles gut. Und das ganze "natürlich" in C#.
    Allerdings habe ich keine Ahnung, weil nicht ausprobiert, wie sich das ganze dann in UserControls verhält.
    Dann wird der Unterschied darin liegen das ich es in die Applikation startup gepackt habe. Da scheint intellisense dann nicht richtig zu funktionieren. Aber gut das es geschrieben hast, werde es später dann auch noch mal so testen.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Hello zusammen

    Akanel schrieb:

    Denn der Import wäre glaube ich die einfachste Lösung, wird mir aber nicht vorgeschlagen

    Ja, wie @Dksksm richtig schreibt, anscheinend hat die IntelliSense in der Application.vb hier probleme. ;(

    Akanel schrieb:

    klar, in die jeweilige Ressource des Usercontrols packen

    Genau, eine möglichkeit ist auch in der Application.xaml

    XML-Quellcode

    1. <Style TargetType="UserControl">
    2. <Setter Property="Language" Value="de-DE"/>
    3. </Style>


    Aber Achtung. Das klappt leider nicht für das Window. Dort muss man es selbst mit Language=de-DE reinpacken. Fragt mich bitte nicht warum. Ich weis es leider nicht. ?(

    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. ##