Datatemplate greift nicht, obwohl in Application.xaml

  • WPF

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

    Datatemplate greift nicht, obwohl in Application.xaml

    Hallo Ihr lieben,

    ich hab grad ein Problem das mich schier in den Wahnsinn treibt, ich bekomme es nicht hin das mein Datatemplate greift. Das DT ist in der Application.xaml hinterlegt, und soll eigentlich dafür sorgen, das jedes OutlookItemViewmodel aussieht, wie im UCL OutlookItemView. In Andren bisher geschriebenen Anwendungen funktioniert das so einwadfrei, aber hier bleibt das jeweilige Item weiterhin nur als String angezeigt, aber ich finde ums verrecken nicht was ich hier falsch gemacht habe. Da es nun schon ein etwas umfangreicheres Programm ist, halte ich schlichtes posten von Code für unpraktisch, weshalb ich das Projekt (Work in Progress) mal hier angehangen habe, evtl. sieht ja jemand was ich diesmal versemmelt habe ??


    LG und Danke =)


    Nachtrag: Peinlich... Er hat das DT angenommen und benutzt, aber irgendwas hatte ich die größen betreffend im Design falsch, daher war das Border schlicht nicht zu sehen, und ohne das sah es wie ein normaler string aus.
    Dateien
    • AutolookV1.zip

      (1,29 MB, 68 mal heruntergeladen, zuletzt: )
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

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

    Hallo @asusdk

    Das glaub ich das dich das in den Wahnsinn treibt. Ist ein (ich nenns jetzt mal so) Bug. Es ist nicht wirklich ein Bug aber es funktioniert so in der Application.xaml nicht.
    Zwei möglichkeiten. Du packst dein DataTemplate in ein ResourceDictionary und verweist auf dieses oder du packst irgendeinen Style in deine Application.xaml.

    XML-Quellcode

    1. <Application.Resources>
    2. <DataTemplate DataType="{x:Type local:OutlookItemViewModel}">
    3. <local:OutlookItemView/>
    4. </DataTemplate>
    5. <Style TargetType="{x:Type Rectangle}" />
    6. </Application.Resources>


    Sobal mindestens ein Style in der Application.xaml vorhanden ist funktioniert es.

    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 Sascha, danke für deine Antwort, aber komischerweise funktioniert es so einwandfrei, mein Fehler war das dass Bordercontrol in meinem UCL max 30 Pixel zur Verfügung hatte und ich von allen Seiten ein Margin von 8 hatte, dadurch war es dann schlicht nicht sichtbar und ich dachte es würde nur die ToString Methode benutzt, wie oben im Nachtrag erwähnt, habe ich die Größe nun korrigiert und es funktioniert wieder wie gewohnt =)

    falls gewünscht kann ich das korrigierte und nun funktionierende Projekt anhängen

    Lieben Gruß


    Nachtrag, ich hab hier ein TestProjekt, bei welchem ich ganze Views an Je ein bestimmtes ViewModel Binde, und im Mainwindow je nach geklickten Button das CurrentView mit dem jeweiligen ViewModel ersetze, auch hier funktionieren dann die DataTemplates aus der Application.Xaml und so kann ich verschiedene Programme in einem Window nutzen, da das bisher immer funktioniert hatte, war ich ja so irritiert, warum es diesmal augenscheinlich nicht mehr ging
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

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

    Hallo

    Ja, das ist mir auch aufgefallen aber ich dachte das weist du. Tipp: Designtime-Support.

    Zu dem "Bug". Siehe hier (erste Antwort): stackoverflow.com/questions/29…-in-application-resources
    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. ##