2012-05-20 5 views
0

Я пытаюсь получить несколько строк в ListView я в настоящее время имеют следующие XAML:несколько строк текста в ListView

 <ListView x:Name="listTasks" Margin="0,0,1.5,0" Background="{x:Null}" BorderBrush="{x:Null}" BorderThickness="0" Foreground="White" ItemsSource="{Binding TasksCollection}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto"> 
     <ListView.ItemContainerStyle> 
    <Style TargetType="{x:Type ListViewItem}"> 
      <Style.Triggers> 
        <Trigger Property="IsSelected" 
            Value="True"> 
          <Setter Property="Background" 
              Value="{x:Null}" /> 
          <Setter Property="BorderBrush" 
              Value="{x:Null}" /> 
        </Trigger> 
        <Trigger Property="IsMouseOver" 
            Value="True"> 
          <Setter Property="Background" 
              Value="{x:Null}" /> 
          <Setter Property="BorderBrush" 
              Value="{x:Null}" /> 
        </Trigger> 
      </Style.Triggers> 
      <Setter Property="Height" Value="50px" /> 
      <Setter Property="Focusable" Value="false" /> 
    </Style> 
</ListView.ItemContainerStyle> 
     <ListView.Resources> 
       <Style x:Key="CustomHeaderStyle" TargetType="{x:Type GridViewColumnHeader}"> 
        <Setter Property="Visibility" Value="Collapsed" /> 
       </Style> 
      </ListView.Resources> 
      <ListView.View> 
       <GridView ColumnHeaderContainerStyle="{DynamicResource CustomHeaderStyle}"> 
        <GridViewColumn Header=""> 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <TextBlock> 
           <TextBlock.Text> 
            <MultiBinding StringFormat=" Module: {0} Conditions: {1}|{2}|{3} for {4} minutes"> 
             <Binding Path="Module"/> 
             <Binding Path="FirstValue"/> 
             <Binding Path="SecondValue"/> 
             <Binding Path="ThirdValue"/> 
             <Binding Path="Minutes"/> 
            </MultiBinding> 
           </TextBlock.Text> 
           </TextBlock> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn> 
       </GridView> 
      </ListView.View> 
     </ListView> 

Это выводит что-то вроде:

enter image description here

Я я пытаюсь добиться чего-то вроде этого (игнорировать разный цветной фон):

enter image description here

Кажется, я не могу придумать, как я это сделаю, любые идеи?

Благодаря

ответ

1

Вы можете использовать вертикальную StackPanel для того, чтобы поставить ряд TextBlock элементов один на другой:

<DataTemplate> 
    <StackPanel> 
     <TextBlock Text="{Binding Module, StringFormat='Module: {0}'}"/> 
     <TextBlock Text="{Binding FirstValue, StringFormat='Module: {0}'}"/> 
     ... 
    </StackPanel> 
</DataTemplate> 

Или вы можете форматировать все в одном `TextBlock ':

<DataTemplate> 
    <TextBlock> 
     <Run Text="Module: "/><Run Text="{Binding Module}"/><LineBreak/><Run Text="Conditions: "/><Run Text="{Binding FirstValue}"/><LineBreak/> 
     ... 
    </TextBlock> 
</DataTemplate> 
+0

Это не связано с переносом текста, мне нужно изменить свой код, чтобы он имел один привязанный текстовый блок в каждой строке. –

+0

@Sandeep - Sorr y, неправильно понял ваш вопрос. См. Обновленный ответ. –

+0

Большое спасибо, почему-то не подумал, что это будет так просто. –

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