Обернуть или украсить wpf listview - PullRequest
2 голосов
/ 23 марта 2010

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

РЕДАКТИРОВАТЬ: вот образец моего 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 и любые другие элементы в дополнительных столбцах.

1 Ответ

0 голосов
/ 23 марта 2010

Свойство должно быть "Шаблон". Смотрите здесь пример: http://msdn.microsoft.com/en-us/library/ms750821.aspx

...