如何在windows phone 8.1,c#中向listview添加列?

时间:2016-04-17 18:12:27

标签: c# windows-phone-8.1 windows-phone

您好我正在努力在Windows Phone 8.1中向listview添加列。我想要2列: 第1列=项目 第2列=数量

我设法将一个项目添加到列表视图,但第二个项目转到下一行。我希望两个项目都显示在同一行上,因此第二个项目应显示在第二列中。

这是我的代码

   protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        var listViewItem = (new ListViewItem { Content ="Vanilla"});
        var listViewItem2 = (new ListViewItem {Content ="1"});

        listView.Items.Add(listViewItem);
        listView.Items.Add(listViewItem2);



    }

2 个答案:

答案 0 :(得分:1)

<ListView x:Name="itemListView"
          Margin="120,0,0,60"
          ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
          SelectionChanged="ItemListView_SelectionChanged">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid Height="110" Margin="6">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="110" Height="110">
                    <Image Source="{Binding Image}" Stretch="UniformToFill"/>
                </Border>
                <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0">
                    <TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap"/>
                    <TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap"/>
                    <TextBlock Text="{Binding Description}" Style="{StaticResource BodyTextStyle}" MaxHeight="60"/>
                </StackPanel>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>          
</ListView>

答案 1 :(得分:0)

在我看来,你应该创建一个包含两个属性的对象:

public class ListViewItem 
{
    public int Index { get; set; }

    public string Name { get; set; }
}

然后将您想要的对象分配给ListView:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    var listViewItem = new ListViewItem { Name= "Vanilla", Index = 1 };

    listView.Items.Add(listViewItem);
}

然后,您只需为ListView创建一个ItemTemplate:

<ListView.ItemTemplate>
    <DataTemplate>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Text="{Binding Index}"/>
                <TextBlock Grid.Column="1" Text="{Binding Name}"/>
        </Grid>
    </DataTemplate>
</ListView.ItemTemplate>    

我是在动态编写的,所以可能会出现一些语法错误:P