【问题标题】:Win 8 App Set text in data templateWin 8 App Set 数据模板中的文本
【发布时间】:2015-06-14 23:21:44
【问题描述】:

我正在尝试学习如何在我的 win 8 应用程序的列表视图中制作数据模板

我的 Xaml 代码中有以下代码

<!-- Vertical scrolling item list -->
    <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}"  TextWrapping="NoWrap" FontFamily="Global User Interface"/>
                        <TextBlock Text="{Binding Subtitle}"  TextWrapping="NoWrap"/>
                        <TextBlock Text="{Binding Description}"  MaxHeight="60" FontFamily="Global User Interface"/>
                    </StackPanel>
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

我想不通的是如何设置三个文本块的文本标题,副标题和描述以及图片中的图片

通常当页面加载时,我在 itemListView_Loaded(object sender, RoutedEventArgs e) 方法中使用以下内容

itemListView.Items.Add(Convert.ToString(correct) + ". " + line.Split(',')[6]);

但我真的很难过

任何帮助表示赞赏

标记

【问题讨论】:

    标签: c# listview windows-8 datatemplate


    【解决方案1】:

    您必须创建一个包含这些属性的类。

    public class MyItem
    {
        public string Title { get; set; }
        public string Subtitle { get; set; }
        public string Description { get; set; }
        public string Source { get; set; }
    }
    

    那么当你添加项目时:

    var item = new MyItem();
    item.Title = "Title";
    item.Subtitle = "Subtitle";
    item.Description = "Some example description.";
    item.Source = "Assets/SomeFolder/SomeImage.png";
    itemListView.Items.Add(item);
    

    这在我的应用中有效 (AirPett Transit)

    【讨论】:

    • 感谢帮助我将类放在我的 itemlistviewloaded 方法所在的同一 page.cs 中并添加了代码。它运行时没有错误,但是当页面打开时列表视图为空白有什么想法吗?
    • 我明白了,您缺少对“itemListView_Loaded”事件处理程序的引用。您应该将其添加到您的 XAML 中:Loaded="itemListView_Loaded"
    • 你的明星,我尝试过的一件事。来源 = "C:\\Users\\Mark\\Pictures\\Ricards-13-02-2015-03-18-12.jpg ";将图片加载到图像中但不显示
    • 不幸的是,您无法直接从 Windows 商店应用程序访问磁盘驱动器。您必须将要显示的图像添加到项目文件夹(即资产)或使用对某些库的特殊访问权限。请看这两个链接:File access permissions in windows store appslink
    • 这意味着:XAML 和 C# 代码都正确且有效,但此问题是 Windows 应用平台的限制。由于这解决了数据绑定和模板的原始问题,请将其标记为答案并在有帮助的情况下进行投票;)我很高兴为您提供帮助,并告诉我是否还有其他问题可以解决(上面的问题与文件加载不能,因为问题出在.net框架中)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多