【问题标题】:display multiple data horizontally水平显示多个数据
【发布时间】:2009-08-03 11:26:12
【问题描述】:

如何在列表框中水平显示数据。我使用属性从文本框中读取数据,我必须将这些多个数据显示到列表框中(在一行中,水平)。我的代码如下所示..

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>

但我没有在一行中得到输出。它以对角线显示..获得正确输出所需的更改是什么..

【问题讨论】:

标签: c# silverlight silverlight-2.0


【解决方案1】:
<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>

试试这个

【讨论】:

  • 标签在 silverlight 2.0 上可用吗??
  • 不,很遗憾VirtualizingStackPanel 不在 Silverlight 2.0 或 3.0 中。尝试改用StackPanel
  • 你是对的,VirtualizingStackPanel 仅在 WPF 中使用 StackPanel 代替
【解决方案2】:

看看MSDN page for the ItemsPanel property。它有一个示例演示如何创建水平列表框。

【讨论】:

    猜你喜欢
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 2019-10-14
    • 2013-11-14
    相关资源
    最近更新 更多