2010-03-22 61 views
2

我試圖實質上用0123邊框在ListViewGridViewColumn中包含DataTemplate的內容。我想知道的是,如果可以提供一個圍繞該模板的裝飾器,那麼我就不必在每一列上指定每個欄的每個DataTemplate的邊框(這正是我現在所做的)。我有這樣的事情,但我知道這是不對的:包裝或裝飾wpf列表視圖數據模板

<Style TargetType="{x:Type ListBoxItem}"> 
    <Setter Property="TemplateContent"> 
    <Setter.Value> 
     <ControlTemplate> 
     <StackPanel> 
      <Border BorderBrush="Green" BorderThickness="1"> 
      <AdornedElementPlaceholder /> 
      </Border> 
     </StackPanel> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 

這抱怨說TemplateContent是不是有效的類型。我也試過DataTemplate,這也不管用(可以理解)。

我知道我可以創建一個DataTemplate,但每列的內容是不同的。至少,它綁定到不同的領域。我想知道是否有使用動態資源的解決方案,但我對此不太瞭解。感謝您的幫助

編輯:這是我的ListView樣本:

<ListView ItemsSource="{Binding Path=OrderLines}" 
      ItemContainerStyle="{StaticResource ResourceKey=ListViewItemContainerStyle}"> 
    <ListView.View> 
    <GridView> 
     <GridViewColumn> 
     <GridViewColumn.CellTemplate> 
      <DataTemplate> 
      <TextBox MaxWidth="30" Width="30" MaxLength="2" 
        Text="{Binding Path=Quantity,ValidatesOnDataErrors=True}" /> 
      </DataTemplate> 
     </GridViewColumn.CellTemplate> 
     </GridViewColumn> 
    <GridView> 
    <ListView.View> 
</ListView> 

基本上我想包裝在DataTemplate和文本框在其他列的其他項目。

回答

0

該屬性需要是「模板」。看到這裏的一個例子:http://msdn.microsoft.com/en-us/library/ms750821.aspx

+0

這似乎不工作,我認爲,因爲它取代了整個ListBoxItem/ListViewItem模板 - 所以綠色框繞過整個行,而不是每個單元格。 – itowlson 2010-03-22 22:08:38

+0

我應該提到我打錯了,目標類型是任何ListVIEWItem而不是ListBoxItem。因此,我似乎無法得到這個例子的工作。它將適用於列表視圖中的那些GridViewColumns中的項目,但是,我所看到的只是綠色邊框,並且內容現在已消失。我的列表視圖有自定義模板。我將用代碼示例更新主要請求。 我該如何將這種風格應用於單數列表視圖(即:什麼是將靜態資源綁定到列表視圖上的屬性,因爲它不是單元模板)。 – 2010-03-22 22:18:40