2009-08-03 8 views
0

comment afficher des données horizontalement dans une zone de liste. J'avais utilisé les propriétés pour lire les données de la zone de texte et je dois afficher ces données multiples dans une zone de liste (sur une ligne, horizontalement). mon code est illustré ci-dessous ..afficher plusieurs données horizontalement

private void SaveButton_Click(object sender, RoutedEventArgs e) 
    { 
     LoadData(); 



    } 

private void LoadData() 
    { 
     List<ItemList> MyList = new List<ItemList>(); 
     MyList.Add(new ItemList { Subject = subjectText.Text }); 
     MyList.Add(new ItemList { Createdtext = CreatedText.Text }); 
     MyList.Add(new ItemList { Calendartext = CalendarText.Text }); 
     MyList.Add(new ItemList { TimeText = TimeText.Text }); 
     MyList.Add(new ItemList { AssignedText = AssignedText.Text }); 
     MyList.Add(new ItemList { DescriptionText = DescriptText.Text }); 
     MyList.Add(new ItemList { TargetdateText = TargetDateText.Text }); 

     MyListBox.ItemsSource = MyList; 

    } 

La propriété pour obtenir des données est:

public class ItemList 
{ 
    private string _subject; 
    private string _createdtext; 
    private string _calendartext; 
    private string _timeText; 
    private string _assignedText; 
    private string _descriptionText; 
    private string _targetdateText; 


    public string Subject 
    { 
     get 
     { 
      return _subject; 
     } 
     set 
     { 
      _subject = value; 
     } 
    } 

    public string Createdtext 
    { 
     get 
     { 
      return _createdtext; 
     } 
     set 
     { 
      _createdtext = value; 
     } 
    } 

    public string Calendartext 
    { 
     get 
     { 
      return _calendartext; 
     } 

     set 
     { 
      _calendartext = value; 
     } 
    } 

    public string TimeText 
    { 
     get 
     { 
      return _timeText; 
     } 

     set 
     { 
      _timeText = value; 
     } 
    } 

    public string AssignedText 
    { 
     get 
     { 
      return _assignedText; 
     } 

     set 
     { 
      _assignedText = value; 
     } 
    } 

    public string DescriptionText 
    { 
     get 
     { 
      return _descriptionText; 
     } 

     set 
     { 
      _descriptionText = value; 
     } 
    } 

    public string TargetdateText 
    { 
     get 
     { 
      return _targetdateText; 
     } 

     set 
     { 
      _targetdateText = value; 
     } 
    } 
} 

Mon code XAML zone de liste est présentée ci-dessous

<ListBox x:Name="MyListBox" ItemsSource="ItemList" Grid.ColumnSpan="6" HorizontalAlignment="Left" Grid.Column="1" Grid.Row="8" Width="600" Height="96"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal" > 
        <Grid ShowGridLines="True" Width="700"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="100" /> 
          <ColumnDefinition Width="100" /> 
          <ColumnDefinition Width="100" /> 
          <ColumnDefinition Width="100" /> 
          <ColumnDefinition Width="100" /> 
          <ColumnDefinition Width="100" /> 
          <ColumnDefinition Width="100" /> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="25" /> 

         </Grid.RowDefinitions> 

        <TextBlock Text="{Binding Subject}" Grid.Column="0"/> 
        <TextBlock Text="{Binding Createdtext}" Grid.Column="1" /> 
        <TextBlock Text="{Binding Calendartext}" Grid.Column="2" /> 
        <TextBlock Text="{Binding Timetext}" Grid.Column="3"/> 
        <TextBlock Text="{Binding AssignedText}" Grid.Column="4"/> 
        <TextBlock Text="{Binding DescriptionText}" Grid.Column="5" /> 
        <TextBlock Text="{Binding TargetdateText}" Grid.Column="6"/> 
        </Grid> 
       </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
</Grid> 

mais je n'ai pas la sortie dans une ligne. il en diagonale .. affiché Quels sont les changements nécessaires pour obtenir une sortie correcte ..

+0

Ceci est une dupe de http://stackoverflow.com/questions/1165236/silverlight-3-list-box –

Répondre

2
<ListBox x:Name="MyListBox" ItemsSource="ItemList" Grid.ColumnSpan="6" HorizontalAlignment="Left" Grid.Column="1" Grid.Row="8" Width="600" Height="96"> 
... 
     <ListBox.ItemsPanel> 
        <ItemsPanelTemplate> 
         <StackPanel Orientation="Horizontal"/> 
        </ItemsPanelTemplate> 
       </ListBox.ItemsPanel> 
... 
</ListBox> 

essayer

+0

La balise est-elle disponible sur silverlight 2.0? – MAC

+1

Non, malheureusement, VirtualizingStackPanel n'est pas dans Silverlight 2.0 ou 3.0. Essayez d'utiliser 'StackPanel' à la place. –

+0

vous avez raison, VirtualizingStackPanel uniquement dans WPF utiliser StackPanel à la place –

Questions connexes