将两个不同类型的列表链接到ListView

时间:2016-10-14 09:03:43

标签: c# listview uwp uwp-xaml

我正在尝试--user-data-dir显示图像和所选图像的名称。到目前为止,我已成功将ListView绑定到ListView.ItemsSource,它在List<BitmapImage>内显示Image元素和Textblock元素,我也成功添加了每个ItemTemplate的名称与单独的Image。现在这就是我被困住的地方,我如何将List<string>List<BitmapImage>绑定到单个ListView,从而将每个List Item的受尊重字段绑定。

代码段如下:

XAML ListView:

List<string>

C#

<ListView x:Name="listView_ViewPhotos" Visibility="Collapsed">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid Margin="0,5,0,5">
                <Grid.ColumnDefinitions>
                    <!--Image Column-->
                    <ColumnDefinition Width="150"/>
                    <!--Name Column-->
                    <ColumnDefinition MinWidth="{Binding ActualWidth, ElementName=pageRoot, Mode=OneWay}"/>
                </Grid.ColumnDefinitions>
                <Image Source="{Binding ImageList}" Height="100" Width="150" Stretch="UniformToFill" Grid.Column="0"/>
                <TextBlock x:Name="txt_Listimg_Caption" Foreground="{ThemeResource ButtonForegroundThemeBrush}" Style="{StaticResource CaptionTextBlockStyle}" TextWrapping="WrapWholeWords" Height="40" Margin="15,0,15,0" FontSize="25" Text="{Binding ImageName}" Grid.Column="1" />
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

1 个答案:

答案 0 :(得分:0)

而不是2个列表,只需使用1:

1,创建一个新课程,让我们称之为ImageDetails。 该类包含2个属性,1是图像本身,1是图像的名称

public class ImageDetails
{
    public BitmapImage Image{get;set:}
    public string ImageName{get;set;}
}

现在,您只需拨打List<ImageDetails>

,而不是加载2个列表

添加示例:

List<ImageDetails> list = new List<ImageDetails>();
ImageDetails _imgDetails = new ImageDetails();
_imgDetails.Image = bitmapImage;
_imgDetails.ImageName = FileName;
list.Add(_imgDetails);

GetAll示例:

foreach(var img in list)
{
    var image = img.Image; //this is your BitmapImage
    var name = img.ImageName; //this is your image Name
    //other work
}