ItemTemplate - Resource konnte nicht gefunden werden

  • WPF

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von SeriTools.

    ItemTemplate - Resource konnte nicht gefunden werden

    Hi,

    ich versuche derzeit meiner ListBox ein ItemTemplate zuzuweisen,
    das funktioniert im Designer auch soweit, doch wenn ich mein Projekt debuggen möchte, tritt ein Fehler auf:

    Quellcode

    1. Die Ressource mit dem Namen "{ScheduleItemTemplate}" kann nicht gefunden werden. Bei Ressourcennamen wird die Groß- und Kleinschreibung berücksichtigt


    das betroffene Objekt ist folgendes:

    XML-Quellcode

    1. <ListBox ItemTemplate="{StaticResource ScheduleItemTemplate}"
    2. Style="{StaticResource PlannerListBoxStyle}"
    3. Name="ScheduleListBox">
    4. <local:Appointment Title="Test" Date="12.01.12" />
    5. <local:Appointment Title="Test" Date="12.01.12" />
    6. <local:Appointment Title="Test" Date="12.01.12" />
    7. <local:Appointment Title="Test" Date="12.01.12" />
    8. </ListBox>


    und das ist mein ItemTemplate (in den Window-Resources):

    XML-Quellcode

    1. <DataTemplate x:Key="ScheduleItemTemplate" DataType="{x:Type local:Appointment}">
    2. <StackPanel Orientation="Vertical">
    3. <TextBlock Text="{Binding Path=Title}" />
    4. <TextBlock Text="{Binding Path=Date}" />
    5. </StackPanel>
    6. </DataTemplate>


    Den zugewiesenen Style (PlannerListBoxStyle) verwende ich für mehrere Listboxen,
    der beschreibt nur Eigenschaften wie Margin, Background etc.

    Würde mich über Hilfe freuen!

    LG, Trudi
    Ist die Listbox ein Kind von deinem Fenster welches in den Resourcen das Template hat?
    Wenn ja kann ich mir das nicht erklären.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Danke für die Antwort,
    die ListBox ist ein Kind von einem StackPanel, welches in einem Grid liegt, dass das Kind vom Fenster ist:

    XML-Quellcode

    1. <Window <!-- [..] -->>
    2. <Grid>
    3. <!-- Column & Row Definitions entfernt. -->
    4. <StackPanel Grid.Column="0" Grid.Row="1">
    5. <ListBox ItemTemplate="{StaticResource ScheduleItemTemplate}"
    6. Style="{StaticResource PlannerListBoxStyle}"
    7. Name="ScheduleListBox">
    8. <local:Appointment Title="Test" Date="12.01.12" />
    9. <local:Appointment Title="Test" Date="12.01.12" />
    10. <local:Appointment Title="Test" Date="12.01.12" />
    11. <local:Appointment Title="Test" Date="12.01.12" />
    12. </ListBox>
    13. </StackPanel>
    14. </Grid>
    15. </Window>


    UPDATE:
    Wenn ich das ItemTemplate direkt der Listbox zuweise (bei <ListBox.ItemTemplate></ListBox.ItemTemplate>),
    dann findet er meinen PlannerListBox-Style nicht.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Trudi“ ()

    So, habe jetzt alle StaticResource zu DynamicResource geändert und das Debuggen funktioniert wieder.
    Anscheinend sind meine Window.Resources dem Compiler zur Zeit des compilierens noch nicht bekannt...

    Weiß jemand, wie ich das hinbekomme, das ich wieder StaticResource nehmen kann?
    Habe mal gelesen, dass DynamicResource mehr CPU-Laufzeit benötigt.

    MfG, Trudi

    EDIT: Fehler gefunden! Der Compiler findet die Resourcen, die gebraucht werden, anscheinend nur, wenn sie über dem eigentlichem XAML definiert werden. (Ich benutze Visual Studio 2010 Professional und programmiere mit dem .Net Framework 3.5).
    Ist der Fehler bei euch auch reproduzierbar? - Mir kommt das ganze eher komisch vor und meine auch, dass ich die schonmal unter dem eigentlichen Code definiert habe.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Trudi“ ()

    Was meinst du mit über dem eigentlichen xaml?
    du hast doch nicht etwas sowas gemacht:

    -window
    -listbox
    -resourcen mit template

    Das wäre gegen die Stylekonventionen aber bei mir geht das trotzdem. Also was genau hast du gemacht. Ich hatte dich schonmal gebeten den Code zu zeigen wobei du natürlich die wichtigen Dinge rausgehauen hast.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Bei mir war es so, als der Fehler kam (hier funktionierte nur DynamicResource)

    Quellcode

    1. - Window
    2. - Grid
    3. - StackPanel
    4. - ListBox
    5. - Resources (mit Template)


    und so kam er nicht mehr:

    Quellcode

    1. - Window
    2. - Resources (mit Template)
    3. - Grid
    4. - StackPanel
    5. - ListBox


    :)
    Kann ich nicht nachvollziehen, da es bei mir auch so funktioniert. (nur mit einem style ausprobiert was aber auf das selbe rausläuft)


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Trudi schrieb:

    EDIT: Fehler gefunden! Der Compiler findet die Resourcen, die gebraucht werden, anscheinend nur, wenn sie über dem eigentlichem XAML definiert werden. (Ich benutze Visual Studio 2010 Professional und programmiere mit dem .Net Framework 3.5).
    Ist der Fehler bei euch auch reproduzierbar? - Mir kommt das ganze eher komisch vor und meine auch, dass ich die schonmal unter dem eigentlichen Code definiert habe.

    Das ist kein Fehler.
    msdn.microsoft.com/de-de/library/ms750950.aspx
    msdn.microsoft.com/de-de/library/ms748942.aspx
    Schau dir mal das "Lookup"-Verhalten beider an.
    | Keine Fragen per PN oder Skype.