1

Ich arbeite an einer C++ - App im Metro-Stil und habe ein Problem mit der Bindung in einem ItemTemplate eines ListView (bzw. dessen Items). Wenn ich es richtig in meiner Page.xaml mache, funktioniert es. Der (vereinfachte) Code wäre: Bindung in ItemTemplate in ResourceDictionary

<ListView x:Name="m_listParts" ItemsSource="{Binding PartsList}> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal" Width="60" Height="60"> 
       <Grid> 
        <TextBlock Text="{Binding Part}"/> 
       </Grid>      
      </StackPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
    <ListView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 
</ListView> 

Allerdings würde ich die ItemTemplate Definition in meinem Resource haben möchte. Aber ich kann nicht herausfinden, wie man die Bindung funktioniert. Es scheint nur die gebundenen Eigenschaften nicht mehr zu finden.

Hier ist meine (vereinfacht) versuchen (da die Itemspanel arbeitet Ich nehme ich das Wörterbuch geladen selbst richtig):

<Style x:Key="PartsListListView" TargetType="ListView"> 
    <Setter Property="ItemsPanel"> 
     <Setter.Value> 
      <ItemsPanelTemplate> 
       <StackPanel Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="ItemTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal" Width="60" Height="60"> 
        <Grid> 
         <TextBlock Text="{Binding Part}"/> 
        </Grid>      
       </StackPanel> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter>  
</Style> 

Der Partslist eine beobachtbare Vektor ist PartViewItem Halten von Gegenständen, die aus einem Teil Eigenschaft besteht.

Antwort

2

Sie sollten Ihre XAML als

<ListView 
    ItemsPanel="{StaticResource MyItemsPanel}" 
    ItemTemplate="{StaticResource MyItemTemplate}" .../> 

schreiben, wo Sie Ressourcen

<UserControl.Resources> 
    <DataTemplate x:Key="MyItemTemplate" DataType="{x:Type MyItemType}"> 
    <StackPanel .... 
    </DataTemplate> 

    <ItemsPanelTemplate x:Key="MyItemsPanel"> 
    <StackPanel... 
    </ItemsPanelTemplate> 
</UserControl.Resources> 
+0

Ich war nicht ganz im Klaren darüber haben, wie diese Vorlagen zu platzieren. So danke! – Sentropie

Verwandte Themen