2010-03-22 3 views
2

Я пытаюсь по существу обернуть содержимое DataTemplate в ListViewGridViewColumn с рамкой. То, что я хочу знать, это то, что можно поставить рекламодателя, который будет окружать этот шаблон, чтобы мне не нужно было указывать границу в каждом DataTemplate на каждом столбце (что я и делаю сейчас). У меня есть что-то вроде этого, но я знаю, что это не так:Оберните или украсьте wpf listview datatemplate

<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, однако содержание для каждого столбца отличается. По крайней мере, он связывается с разными полями. Мне интересно, есть ли решение с использованием динамического ресурса, но я мало знаю об этом. Спасибо за вашу помощь

EDIT: Вот пример моей 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

+0

Я должен упомянуть, что я ошибся, и что тип цели будет любым ListVIEWItem, а не ListBoxItem. Таким образом, я не могу заставить этот пример работать. Он будет работать для тех элементов в списке, которые являются GridViewColumns, но все, что я вижу, это зеленая рамка, и содержимое теперь исчезло. В моем списке есть пользовательские шаблоны. Я обновляю основной запрос с образцом кода. Как я мог бы применить этот стиль к уникальным спискам (т. Е. - что является свойством связывать статический ресурс с списком, потому что это не celltemplate). –

Смежные вопросы