1

我工作的一個C++的Metro風格的應用程序,並與(分別或它的項目)一個ListView的一個ItemTemplate內的結合相關的問題的ItemTemplate綁定。如果我在Page.xaml中正確使用它,它正在工作。 (簡化)代碼將是: 在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> 

不過,我想在我的ResourceDictionary ItemTemplate中定義。但我無法弄清楚如何讓綁定工作。它似乎沒有找到綁定的屬性了。

這是我(簡化)嘗試(因爲ItemsPanel的工作,我想我裝的詞典本身正確):

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

的PartsList是拿着它由一個部件屬性的PartViewItem對象可觀察到的載體。

回答

2

你應該寫XAML中作爲

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

,你有資源

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

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

我還沒有完全知道如何將這些模板。那謝謝啦! – Sentropie 2012-03-29 07:14:00

相關問題