无法将ListView ItemsSource设置为自定义对象列表

时间:2019-04-02 13:48:35

标签: c# wpf xaml listview

我正在尝试创建用户在程序中打开的最近文件的ListView。我使用了一个名为GameFileData的自定义对象,该对象存储3个变量,Path(字符串),Name(字符串)和LastEdited(日期时间)。这些详细信息存储在List对象中。

这是ListView的XAML

<ListView x:Name="LvRecents" SelectionMode="Single" Margin="5,41,10,35">
    <ListView.View>
        <GridView>
            <GridViewColumn x:Name="ColName" Header="Name" DisplayMemberBinding="{Binding Name}"/>
            <GridViewColumn x:Name="ColLastEdited" Header="Last Edited" DisplayMemberBinding="{Binding LastEdited}"/>
        </GridView>
    </ListView.View>
</ListView>

在后台代码中,我有一个在加载窗口时执行的方法:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    LvRecents.Items.Clear();
    List<GameFileData> gfd = Saves.GetRecents();
    LvRecents.ItemsSource = gfd;
}

当我运行列表中有两个项目的代码时,ListView会正确显示两个可选项目,但它们没有内容:

The listview shows items without any text

我也尝试过使用Path变量而不是LastEdited进行相同的操作,认为这可能与奇怪的数据结构有关,但是我得到了相同的结果

编辑:根据要求,GameFileData类:

public class GameFileData
{
    public string Path;
    public string Name;
    public DateTime LastEdited;

    public GameFileData(string path, string name, DateTime lastEdited)
    {
        Path = path;
        Name = name;
        LastEdited = lastEdited;
    }
}

断点确定GetRecents()正确返回了列表

0 个答案:

没有答案