отображать несколько данных по горизонтали - PullRequest
0 голосов
/ 03 августа 2009

как отобразить данные по горизонтали в списке. Я использовал свойства для чтения данных из текстового поля, и мне нужно отобразить эти несколько данных в поле списка (в одну строку, горизонтально). мой код показан ниже ..

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;

    }

Свойство для получения данных:

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;
        }
    }
}

Мой код XAML для поля со списком показан ниже

<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>

но я не получил вывод в одну строку. отображается по диагонали .. Какие изменения необходимы для получения правильного вывода ..

Ответы [ 2 ]

2 голосов
/ 03 августа 2009
<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>

попробуйте это

0 голосов
/ 03 августа 2009

Просмотрите страницу MSDN для свойства ItemsPanel . В нем есть пример, демонстрирующий, как создать горизонтальный список.

...