c# - 将 DataGrid 绑定(bind)到队列显示为空

标签 c# .net wpf

我可能在这里做了一些微不足道的错误,但我似乎无法让以下内容发挥作用:

    public MainWindow()
    {
        InitializeComponent();
        Loaded += new RoutedEventHandler(MainWindow_Loaded);
    }

    public Queue<Player> quePlayers { get; set; }

    Random rand = new Random((int)DateTime.Now.Ticks);

    public void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        quePlayers = new Queue<Player>();
        //quePlayers.Add(new Player() { FullName = Guid.NewGuid().ToString(), Age = rand.Next() % 40, SomeData = Guid.NewGuid().ToString() });
        //quePlayers.Add(new Player() { FullName = Guid.NewGuid().ToString(), Age = rand.Next() % 40, SomeData = Guid.NewGuid().ToString() });
        //quePlayers.Add(new Player() { FullName = Guid.NewGuid().ToString(), Age = rand.Next() % 40, SomeData = Guid.NewGuid().ToString() });
        //quePlayers.Add(new Player() { FullName = Guid.NewGuid().ToString(), Age = rand.Next() % 40, SomeData = Guid.NewGuid().ToString() });
        //quePlayers.Add(new Player() { FullName = Guid.NewGuid().ToString(), Age = rand.Next() % 40, SomeData = Guid.NewGuid().ToString() });

        quePlayers.Enqueue(new Player() { FullName = Guid.NewGuid().ToString(), Age = rand.Next() % 40, SomeData = Guid.NewGuid().ToString() });
        quePlayers.Enqueue(new Player() { FullName = Guid.NewGuid().ToString(), Age = rand.Next() % 40, SomeData = Guid.NewGuid().ToString() });
        quePlayers.Enqueue(new Player() { FullName = Guid.NewGuid().ToString(), Age = rand.Next() % 40, SomeData = Guid.NewGuid().ToString() });
        quePlayers.Enqueue(new Player() { FullName = Guid.NewGuid().ToString(), Age = rand.Next() % 40, SomeData = Guid.NewGuid().ToString() });
        quePlayers.Enqueue(new Player() { FullName = Guid.NewGuid().ToString(), Age = rand.Next() % 40, SomeData = Guid.NewGuid().ToString() });

        dgTest.ItemsSource = quePlayers;
        //dgTest.ItemsSource = CollectionViewSource.GetDefaultView(dgTest.ItemsSource);

    }

如果我将该队列更改为列表,网格中将显示数据,但队列和堆栈将不合作

dgTest.Items 属性有 5 个成员,我返回的 CollectionView 是 EnumerableCollectionView,我可以枚举并查看其中的 5 个成员

我的 XAML 也很简单

<DataGrid x:Name="dgTest" AutoGenerateColumns="True" />

知道出了什么问题吗? Queue 实现了 IEnumerable,ItemsSource 的唯一要求是 IEnumerable

最佳答案

我的猜测是 AutoGenerateColumns。尝试手动设置一列。

关于c# - 将 DataGrid 绑定(bind)到队列显示为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13845282/

相关文章:

c# - 在 VS2010 中打开 .mdproj 文件

c# - 替换字符串中的每个字母?

c# - 使用 .NET 2.0 的 System.BadImageFormatException

c# - WPF复选框IsChecked两种方式绑定(bind)不起作用

javascript - 需要asp :TextBox when specific asp:CheckBoxList ListItem checked

c# - 通过隐藏字段传递 JSON 序列化数据

c# - 将 INotifyPropertyChanged 添加到模型?

wpf - WPF数据绑定(bind)的 "RelativeSource FindAncestor"到底是做什么的?

C# 套接字服务器没有超过 800 个客户端

.net - 在没有单独的插件接口(interface) DLL 的情况下,如何使应用插件感知?