【问题标题】:How to add columns to listview in windows phone 8.1,c#?如何在 windows phone 8.1,c# 中将列添加到列表视图?
【发布时间】:2016-04-22 15:39:21
【问题描述】:

您好,我正在努力在 windows phone 8.1 中向列表视图添加列。我想要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);



    }

【问题讨论】:

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


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

    【讨论】:

    • 您好,我在 XAML 中收到以下错误“无法解析资源“itemViewSource””。
    • 即包含变量title、subtitle和description的源对象。在您的情况下,源对象是一个包含 Item 和 Quantity 的对象
    【解决方案2】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多