2

在 C# 中使用 Windows 10 通用应用程序时,有谁知道将多个文本部分添加到一个列表视图项的正确方法?Items.subitems 似乎不起作用。假设我想在单个列表项中显示的两个字符串存储在...

    public class listContent
    {
        public string heading { get; set; }
        public string subHeading { get; set; }
    }

会做类似的工作吗?

listContent listItem = new listContent();
listItem.heading = "HEADING";
listItem.subHeading = "subheading";
lsvTransactions.Items.Add(listItem);

问候内森

4

3 回答 3

2

如前所述,如果您向我们提供有关您的代码的更多信息,我们可以提供更好的帮助。我在这里向您发布了一个列表框示例(类似于列表视图),其中定义了我使用的元素的 ItemTemplate 以及如何将项目绑定到列表框以及项目中的字段与放入列表框中的元素.

    <ListBox Grid.Row="0" Grid.Column="0" ItemsSource="{Binding Path=MeasureUnits, Mode=OneWay}"
              SelectedItem="{Binding Path=SelectedMeasureUnit, Mode=TwoWay}"
            SelectionMode="Single" Margin="0" 
              IsSynchronizedWithCurrentItem="True" >
        <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <WrapPanel>
                            <TextBlock Text="{Binding Path=ID}" Style="{StaticResource idStyle}" />
                            <TextBlock Text="{Binding Path=Description}" Style="{StaticResource desStyle}"/>
                        </WrapPanel>
                        <WrapPanel>
                            <TextBlock Text="{Binding Path=DestinationUnitsInSource}" Style="{StaticResource numStyle}" />
                            <TextBlock Text="{Binding Path=SourceUnitsInDestination}" Style="{StaticResource numStyle}" />
                        </WrapPanel>
                    </StackPanel>
                </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
于 2015-09-15T18:04:52.783 回答
2

最好的方法是将 DataBind 绑定到自定义 DataTemplate。考虑到您已经有lsvTransactions名称 ListView。这是你应该做的。

  1. listContent在您的 .cs 文件中创建一个列表,如下所示

    public class MainPage : Page
    {
        public List<listContent> ContentList {get; set;}
        .....
    
  2. ContentList像上面那样在你的代码中添加项目。

  3. 添加项目后,添加以下行以指向数据源。

    lsvTransactions.DataContext = ContentList;
    
  4. 使用 DataTemplate 创建如下所示的 ListView

    <ListView x:Name="lsvTransactions" ItemsSource={Binding}>
            <ListView.ItemTemplate>
                    <DataTemplate>
                            <StackPanel>
                                    <TextBlock Text="{Binding heading}"/>
                                    <TextBlock Text="{Binding subheading}"/>
                            </StackPanel>
                    </DataTemplate>
            </ListView.ItemTemplate>
    </ListView>
    
于 2015-09-16T03:27:38.897 回答
0

在我的 XAML 中:

 <ListView x:Name="listView">

在我的 C# 中:

listView.Items.Add(item);

其中 Item 是具有多个文本元素的对象。

如果您发布代码,我可以更具体。

于 2015-09-15T17:22:30.653 回答