我可能在这里做了一些微不足道的错误,但我似乎无法让以下内容发挥作用:
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/