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

  • WPF MVVM

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

    Danke für die schnelle Antwort. Aber ich habe meinen Fehler ja bereits gefunden. Hab nur was im Video übersehen. Bleibt nur die Frage warum ich im HeaderText System.Windows.Controls.Label: Kontakte statt nur Kontakte angezeigt bekomme. Da komm ich noch nicht dahinter.
    Hallo

    Das ist relativ simpel (Ich weis, das ist immer lustig wenns einer weis). Also, du bindest mit SelectedItem.Header an den Header des TabControl. Schaun wir uns das an.

    XML-Quellcode

    1. <TabControl x:Name="TabControlMain" Grid.Row="1" HorizontalContentAlignment="Stretch" >
    2. <TabItem>
    3. <TabItem.Header>
    4. <Label Content="Kontakte" FontWeight="Bold" FontSize="18"/>
    5. </TabItem.Header>
    6. ...
    7. ...
    8. </TabControl>


    Was ist im Header? Genau. Ein Label. Da die WPF keinen Converter finden kann welcher ein Label-Objekt zu einem String konvertiert ruft die WPF auf diesem Objekt die ToString() Methode auf.
    Wenn du diese in C# Aufrufst bekommst du genau das selbe Ergebnis. Weil, im Header ist nun mal ein Label. Dieses hat als Content einen String. Den String mit dem Inhalt "Kontakte". Also bindest du auf den Content des Labels:

    XML-Quellcode

    1. <views:uclTopButtonBar x:Name="uclTopBar" HeaderText="{Binding ElementName=TabControlMain, Path=SelectedItem.Header.Content, Mode=OneWay}"/>


    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 zur Info

    Ich habe das Inhaltsverzeichnis der Tutorialreihe abgeändert wie hier bereits geschrieben. Die bisherigen Posts und Videos zum "gestrichenen" Kapitel lasse ich derweil noch stehen werde diese aber nächste Woche löschen.
    Wer diese dennoch haben möchte bitte das PDF, die Videos und die Beiträge selbst wegsichern.

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

    Wird das PDF benötigt oder reicht das Forum? 12
    1.  
      Ja, ist praktisch für E-Books (8) 67%
    2.  
      Ich brauche es nicht, hab eh Internet am Handy auch (4) 33%
    Neues Kapitel Online.

    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 liebe Leute

    Das Ergebnis der Umfrage ist ja recht eindeutig. Ich mache also weiterhin auch PDFs fertig.

    Ein neues Kapitel habe ich auch fertig und das Video hochgeladen.
    4.2 - Die erste View erstellen und Binden

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

    Nun ist bereits 4.4 - Filtermöglichkeit einbinden online. Viel spaß.

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

    Bezüglich deiner letzten beiden Kapitel hast du bei der Zeile #3 im Video gehadert, ob du OrElse oder Or nehmen sollst und dich dann für das Or entschieden hast.
    Deine Behauptung, dass beim OrElse der erste Vergleich bei Ungleich abgebrochen wird...

    VB.NET-Quellcode

    1. Private Function Contacts_Filter(obj As Object) As Boolean
    2. Dim c As ContactViewModel = CType(obj, ContactViewModel)
    3. Return c.FullName.ToLower().Contains(FilterString.ToLower()) Or c.Note.ToLower().Contains(FilterString.ToLower())
    4. End Function
    Das ist genau umgekehrt - bei Ungleichheit wird der nächste Vergleich herangenommen und bei Gleichheit sofort abgebrochen.
    Ich will das nur sagen, damit dieses Kapitel bei diesem Thema nicht falsch verstanden wird...

    Des Weiteren, glaub ich, kann man die #Zeilen 6-8 bei <ResourceDictionary.MergedDictionaries> löschen

    XML-Quellcode

    1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    3. xmlns:local="clr-namespace:_4_3_PhoneBook"
    4. xmlns:sys="clr-namespace:System;assembly=mscorlib">
    5. <!--<ResourceDictionary.MergedDictionaries>
    6. <ResourceDictionary Source="ScrollbarStyle.xaml"/>
    7. </ResourceDictionary.MergedDictionaries>-->
    8. <!--Size-->
    9. <sys:Double x:Key="DefaultFontSize">20</sys:Double>
    10. <sys:Double x:Key="DefaultBigFontSize">25</sys:Double>
    11. <!--Color-->
    12. <Color x:Key="DefaultIconDrawingColor">Black</Color>
    13. <!--Brushes-->
    14. <SolidColorBrush x:Key="DefaultIconDrawingBrush" Color="{StaticResource DefaultIconDrawingColor}"/>
    15. </ResourceDictionary>

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

    Danke für die Berichtigung. Ja, mir ist es damals dann auch "eingefallen". Das problem ist oft das wenn man reden muss, Tippen und dabei dann auch noch logisch denken muss, man voll den Knoten im Hirn bekommt. Ich bin nicht so der Multitasking Typ. Und bei sowas vertuh ich mich dann gern.

    Du hast aber völlig recht!! DANKE. Leider hatte ich zu dem zeitpunkt bereits hochgeladen, somit konte ich dann nichts mehr ändern. Ich hoffe die Leute lassen sich davon nicht verwirren.
    aber so viele Views hat die Tutorialreihe ja eh nicht. aber hast super aufgepasst. Respekt!! :thumbsup:

    Bez. dem Style. Warum? das wird für die Scrollbar benötigt. Damit die etwas im Handystyle ist.

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

    Moin,

    erstmal danke @Nofear23m für die Arbeit mit den Tutorial bisher fand ich sie sehr informativ und gerade bei den DataTemplates kam der Wow-Effekt.

    Ich bin gerade dabei dein Tutorial durchzuarbeiten und wollte mir als Zwischending mal eben eine UI bauen bzw nur etwas testen.

    Bin grad fertig mit dem Kapitel 2.1.1.3 und wollte etwas aus dem Kapitel 2.1.1.2 - Templates nachstelle unzwar die TreeView mit dem HierarchicalDataTemplate.
    Das Beispiel habe ich soweit verstanden ein Parent kann viele Childs haben und ein Child kann wiederum viele Childs haben.

    Nun wollte ich das Beispiel mal um modeln auf eine Struktur die ich für meine Winforms Passwortverwaltung nutze.
    Unzwar habe ich da Ordner die mehrere Kategorien und auch mehrere PasswortListen enthalten können.
    Die Kategorien können wiederum auch mehrere PasswortListen enthalten.

    Konzept ist das ich mir einen Ordner erstellen kann in dem ich entweder direkt PasswortListen speichern kann ODER aber noch Kategorien per Ordner erstelle
    die dann Listen enthalten.

    Ich hab also folgende Klassen:
    Spoiler anzeigen

    Ordner:
    Spoiler anzeigen

    C#-Quellcode

    1. using System.Collections.ObjectModel;
    2. namespace Passwortverwaltung
    3. {
    4. public class Ordner
    5. {
    6. public string Name { get; set; }
    7. public ObservableCollection<PasswortListe> PasswortListen { get; set; }
    8. public ObservableCollection<Kategorie> Kategorien { get; set; }
    9. public Ordner()
    10. {
    11. PasswortListen = new ObservableCollection<PasswortListe>();
    12. Kategorien = new ObservableCollection<Kategorie>();
    13. }
    14. public Ordner(string name)
    15. {
    16. this.Name = name;
    17. PasswortListen = new ObservableCollection<PasswortListe>();
    18. Kategorien = new ObservableCollection<Kategorie>();
    19. }
    20. }
    21. }


    Kategorie:
    Spoiler anzeigen

    C#-Quellcode

    1. using System.Collections.ObjectModel;
    2. namespace Passwortverwaltung
    3. {
    4. public class Kategorie
    5. {
    6. public string Name { get; set; }
    7. public ObservableCollection<PasswortListe> PasswortListen { get; set; }
    8. public Kategorie()
    9. {
    10. PasswortListen = new ObservableCollection<PasswortListe>();
    11. }
    12. public Kategorie(string tName)
    13. {
    14. this.Name = tName;
    15. PasswortListen = new ObservableCollection<PasswortListe>();
    16. }
    17. }
    18. }


    PasswortListe:
    Spoiler anzeigen

    C#-Quellcode

    1. namespace Passwortverwaltung
    2. {
    3. public class PasswortListe
    4. {
    5. public string Name { get; set; }
    6. public PasswortListe()
    7. {
    8. }
    9. public PasswortListe(string name)
    10. {
    11. this.Name = name;
    12. }
    13. }
    14. }



    Das XAML sieht so aus:
    Spoiler anzeigen

    XML-Quellcode

    1. ​<Window x:Class="Passwortverwaltung.MainWindow"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    6. xmlns:local="clr-namespace:Passwortverwaltung"
    7. mc:Ignorable="d"
    8. Title="Passwortverwaltung" Height="450" Width="800">
    9. <Grid>
    10. <DockPanel LastChildFill="False">
    11. <TreeView DataContext="{Binding}" ItemsSource="{Binding OrdnerDaten}" Width="200">
    12. <TreeView.Resources>
    13. <HierarchicalDataTemplate ItemsSource="{Binding}" DataType="{x:Type local:Ordner}">
    14. <StackPanel Orientation="Horizontal">
    15. <Rectangle Width="10" Height="10" Fill="Yellow" />
    16. <TextBlock Text="{Binding Name}"/>
    17. </StackPanel>
    18. </HierarchicalDataTemplate>
    19. <HierarchicalDataTemplate ItemsSource="{Binding Kategorien}" DataType="{x:Type local:Kategorie}">
    20. <StackPanel Orientation="Horizontal">
    21. <Rectangle Width="10" Height="10" Fill="Green" />
    22. <TextBlock Text="{Binding Name}"/>
    23. </StackPanel>
    24. </HierarchicalDataTemplate>
    25. <HierarchicalDataTemplate ItemsSource="{Binding PasswortListen}" DataType="{x:Type local:PasswortListe}">
    26. <StackPanel Orientation="Horizontal">
    27. <Rectangle Width="10" Height="10" Fill="Red" />
    28. <TextBlock Text="{Binding Name}"/>
    29. </StackPanel>
    30. </HierarchicalDataTemplate>
    31. </TreeView.Resources>
    32. </TreeView>
    33. </DockPanel>
    34. </Grid>
    35. </Window>


    Damit bekomme ich jedeglich nur einen Ordner angezeigt ohne Childs(Kategorien/PasswortListen)
    Wenn ich das XAML ändere und beim ersten Template direkt auf Kategorien binde per ItemSource bekomme ich zwar Ordner + Kategorie angezeigt aber leider keine PasswortListen.

    Hab ich da einen Denkfehler?
    Ich möchte das ich auf OrdnerDaten binde diese sind die OBERSTEN Parent Elemente. Die dann Kategorien ODER Passwortlisten enthalten können.
    Aber irgendwie weiß ich nicht wie ich sagen kann Binding auf OrdnerDaten gehe die alle durch und dann hast du hier 2 Childs die es geben kann nämlich Kategorie und PasswortListe.

    Ich hoffe das gebrabbel war verständlich was ich erreichen will.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Hallo @xChRoNiKx

    Das ist eine knifflige Sache, welche so auch nicht möglich ist. Zumindest nicht mit dieser Datestruktur.
    Du schreibst: Die dann Kategorien ODER Passwortlisten enthalten können.
    Da ist das ViewModel aber schon falsch definiert. In deinem Fall würde eher folgendes zutreffen: Die dann Kategorien UND Passwortlisten enthalten können..
    Denn genau so ist es ja laut deiner Struktur. Du kannst innerhalb der Resourcen eines Controls einen Datentyp nur einmal angeben. Die WPF kann nicht wissen welches Template es laden sollte.

    Folgender XAML würde mal für die Kategorien funktionieren:

    XML-Quellcode

    1. <TreeView DataContext="{Binding}" ItemsSource="{Binding OrdnerDaten}" Width="200">
    2. <TreeView.Resources>
    3. <HierarchicalDataTemplate ItemsSource="{Binding Kategorien}" DataType="{x:Type passwortverwaltung:Ordner}">
    4. <StackPanel Orientation="Horizontal">
    5. <Rectangle Width="10" Height="10" Fill="Yellow" />
    6. <TextBlock Text="{Binding Name}"/>
    7. </StackPanel>
    8. </HierarchicalDataTemplate>
    9. <HierarchicalDataTemplate ItemsSource="{Binding PasswortListen}" DataType="{x:Type passwortverwaltung:Kategorie}">
    10. <StackPanel Orientation="Horizontal">
    11. <Rectangle Width="10" Height="10" Fill="Green" />
    12. <TextBlock Text="{Binding Name}"/>
    13. </StackPanel>
    14. </HierarchicalDataTemplate>
    15. <HierarchicalDataTemplate ItemsSource="{Binding}" DataType="{x:Type passwortverwaltung:PasswortListe}">
    16. <StackPanel Orientation="Horizontal">
    17. <Rectangle Width="10" Height="10" Fill="Red" />
    18. <TextBlock Text="{Binding Name}"/>
    19. </StackPanel>
    20. </HierarchicalDataTemplate>
    21. </TreeView.Resources>
    22. </TreeView>



    Wenn du es wirklich so realisieren willst wie du es schreibst dann müsstest du zwei Verschiedene Klassen für die "Ordner"-Klasse haben. Eine Klasse für einen Ordner welcher Passwortlisten enthält und eine Klasse für einen Ordner welcher Kategorien enthält. z.b. mit einer gemeinsamen Basisklasse oder ein Interface. (OrdnerBase bzw. IOrdner)

    z.b. die Klassen KatOrdner und PwOrdner.

    Somit hast du zwei verschiedene Datentypen und je nachdem was du in dein Property OrdnerDate welches nun z.b. vom Typ OrdnerBasewäre packen kannst.
    Dann kann die WPF je nachdem welcher Typ es ist das richtige Template laden.



    Ich hoffe ich habs nicht zu verwirrend geschreiben.

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

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

    Hallo Leute

    @Akanel Ja und Jein. ;)
    Ich habe die nächsten zwei Videos bereits abgefilmt aber den Textbeitrag noch nicht fertig, ich hatte schlciht keine Zeit weil ich mit einem größeren Projekt total eingebunden war/bin.
    Dieses neigt sich zwar dem ende zu aber ich muss mir selbst wieder in die Tutorialreihe reinfinden da mein aktuelles Projekt auch in C# war.

    Die Nachfrage ist mehr als gering, nicht um zu sagen verschindend klein. Ihr zwei seit die ersten die Nachfragen und das finde ich schade. Es ist eine menge Arbeit so eine folge zu erstellen.

    @VB1963 Ja, auf das MVVM Thema würde ich mich auch schon freuen, aber es ist ein harter Weg, sage aber definitiv das ich die Reihe nicht aufgebe, rein die Priorität hat sich aufgrund der schwachen Nachfrage eben ein wenig verschoben.

    Ich hoffe das ich in der nächsten Zeit (mein aktuelles Projekt befindet sich bereits in der Beta) wieder mehr Zeit haben werde hier weiter zu machen.

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

    Also ich bin definitiv auch weiter interessiert.
    Durch dich bin ich von Forms weg und arbeite nur noch mit WPF erleichtert vieles.

    Bin sehr gespannt wie es weitergeht. Solltest du bei etwas Hilfe brauchen wo man helfen kann gerne auch bescheid geben.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Ich arbeite immerhin in einem Projekt jetzt mit WPF und ich tu mich gar nicht so leicht damit.
    Ich habe halt immer noch Winforms im Kopf und auch ein Projekt, das sehr oft Anpassungen an sich ändernde Umstände erfordert.
    Ich habe kaum die Zeit mich aktiv einzubringen und deswegen "lurke" ich hier nur mit.
    Ich denke das sehr viele ein echtes Interesse an deinem Tutorial haben. Die sollten sich zumindest hier und jetzt aber ruhig mal "outen".
    Ich verstehe durchaus, dass du deine Arbeit nicht gewürdigt siehst. Aber ganz ernst gemeint, ohne dein bisheriges Tutorial und ohne all die Hilfestellungen bei Anfragen zu WPF hätte ich mein erstes WPF Projekt niemals zum Fliegen bekommen.

    Also Danke noch einmal für deine bisherige Arbeit und ich hoffe inständig darauf, dass du trotz spärlichen unmittelbaren Reaktionen deinem Projekt treu bleibst. Es wird auch zukünftig vielen helfen mit WPF.
    Danke für eure Beiträge und für die angebotene Unterstützung.

    Ich kann mir durchaus vorstellen Hilfe in Anspruch zu nehmen, da müssten wir nur sehen in wie fern dies einfachst möglich ist.
    Was mich am ehesten Aufhält ist, die Textvariante zu erstellen. Das Video ansich ist kein Problem, den Text zu formulieren und sowohl das PDF als auch den Beitrag zu schreiben (der geht ja dann anhand des PDFs eh fast mittels Copy&Paste) hält enorm auf weil ich dann ja quasi alles von vorn mache und auch die Codepassagen und die Screenshots erstellen muss.

    Ich habe bisher noch keine bessere möglichkeit gefunden dies zu vereinfachen. Hier muss ich mir echt was einfallen lassen, wird dieser Prozess einfacher gehts weit schneller voran.

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

    Hi. @Nofear23m

    Ich weis genau wovon du sprichst, ich wollte im November 2019 MVVM Live Streamen und das für @florian03 und andere.

    Zitat aus Konversation mit florian03:

    "Ich wollte eines meiner MVVM Projekte das viel mit Bildern, Listen und vor allem mit DataTemplates versehen ist, als Einführung machen.
    Damit kann dann mal aufgezeigt werden, wie ich sowas mache und was das im Kontext von WPF oder MVVM bedeutet.
    ...
    Im Anschluss wollte ich dann einmal zeigen wie ich ein MVVM Projekt erstelle, um das MVVM-Prinzip "zusammen zu dengeln".
    Also wo welche Dateien im Projekt zu erstellen sind was sie machen und das sollte auch nur 30min dauern.

    Wenn dann noch puste bleibt evtl. interaktive Fragestunde... was eigentlich die ganze Zeit passieren sollte."


    Was ist passiert? Nix besonderes, bin zur einer "FullStackDeveloper"-Schulung gegangen und im Anschluß
    mach(t)e ich eine Umschulung zum Fachinformatiker. Theorie ist in 3 Monaten durch... Ich aber auch!


    Ich weis genau was Du durchmachst. ;)

    Was mir am schwersten fällt, ist es wieder rein zu kommen und nahtlos weiter zu machen.

    Nur das Du das weisst, Du bist der Beste (psst nicht weitersagen, sonst wollen die alle was...)


    Also ich stehe leider nicht zur Verfügung, vielleicht im Sommer wenn die Blüten blühen... und nein. Ich habe nicht am Kleber geschnüffelt! :S

    Mehr als Durchhalteparolen und UTF-8 Kodierte-Kommentare kann ich wohl nicht beitragen, aber das mit "liebevollen Worten".





    "Piep, piep, piep ich hab NoFear´s MVVM-Tutorial TOTAL lieb. <3

    Mit Wonne ist der Stream geschaut, und ein Schoki unbemerkt dabei gekaut. :/

    Auch wenn mal dort ´ne harte Nuss. Ich verstehe, denn ich muss. ;(

    Ich rede nicht von Haselnuss, ich meine Binding- oder Styling-Nuss! 8o

    Schlicht kommt eine Programmierer-Finte oder eine DuckTyping-Ente, :whistling:

    meist bei Minute 17, kurz vor Ende. 8-)

    Wer noch Fragen oder wen mehr Worte und Bilder etwas sagen, :thumbup:

    kommt gemächlich hier ins Forum, und vertieft die MVVM´s. :/

    (nicht die M&M´s. :D )

    So nimmt der noFear23m Dir die Furcht vor WPF und seines gleichen,

    mit Struktur und Inhalt ohne gleichen."





    So! Genug gedichtet, muss mal schlafen, morgen Büffeln.

    Von mir steht auch das Angebot Dir zu helfen. :thumbsup: "Lass Knacken..."

    c.u. Joshi und ich habe Dich lieber als deine MVVM Beiträge, aber nur ein "Bisschen" lol :whistling:
    Ich hab bisher immer still mitgelesen. Finde das was du hier machst super gut und würde

    mir sogar wünschen, dass wenn das mal fertig ist, es ein PDF/ebook werden würde

    So zum ausdrucken oder am ipad lesbar


    in diesem Sinne bitte weiter machen

    (Nachtrag) Irgendwie hat es den Text Verrissen und mir fällt es erst Tage später auf :D :D :D Ich korrigier das mal

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

    Hi,
    ich würde mir auch wünschen das es weiter geht.
    Bis zu einem gewissen Grad kann ich Dich auch unterstützen.
    Ich bin ziemlich eingespannt seit Einführung SAP weswegen ich wenig Zeit habe zu programmieren.

    Vielleicht können wir ja nochmal ne online Session machen. Freitags oder so.
    "Hier könnte Ihre Werbung stehen..."