C# 为什么要获取System.InvalidOperationException?

C# 为什么要获取System.InvalidOperationException?,c#,.net,wpf,linq,C#,.net,Wpf,Linq,我现在真的很绝望。我正在编写一个WPF程序。我构建了一个简单的XAML构造,并根据数据库中存储的元素数量动态生成网格和网格内的标签。即使我定义了标签并将其命名为Label,我还是得到了一个System.invalidoOperationException。我找到了这个解决办法。我的实际问题是,我需要在这个网格中获取标签的内容。我提出的所有问题都与我链接的问题相似 我希望你明白我的意思 这是我的代码: for (int i = 0; i < numberOfBooks; i++) {

我现在真的很绝望。我正在编写一个WPF程序。我构建了一个简单的
XAML构造
,并根据数据库中存储的元素数量动态生成网格和网格内的标签。即使我定义了标签并将其命名为Label,我还是得到了一个
System.invalidoOperationException
。我找到了这个解决办法。我的实际问题是,我需要在这个网格中获取标签的内容。我提出的所有问题都与我链接的问题相似

我希望你明白我的意思

这是我的代码:

for (int i = 0; i < numberOfBooks; i++)
{
    Grid grid = new Grid();
    RowDefinition row = new RowDefinition();

    ColumnDefinition column = new ColumnDefinition();
    ColumnDefinition column2 = new ColumnDefinition();
    ColumnDefinition column3 = new ColumnDefinition();

    Label label = new Label();
    label.Content = Books[i].Titel;

    upperGrid.RowDefinitions.Add(row);
    grid.ColumnDefinitions.Add(column);
    grid.ColumnDefinitions.Add(column2);
    grid.ColumnDefinitions.Add(column3);

    Grid.SetRow(label, i);
    Grid.SetColumn(label, 0);
    Grid.SetRow(grid, i);
    upperGrid.Children.Add(grid);
    grid.Children.Add(label);

    grid.MouseLeftButtonDown += (sen, evg) =>
    {
        Label lbl = grid.Children.OfType<Label>().First(k => k.Name=="label"); //Here I get the exception
        string result = lbl.Name.ToString();
        Console.WriteLine(result);
    }; 
}
for(int i=0;i
{
Label lbl=grid.Children.OfType().First(k=>k.Name==“Label”);//这里我得到了一个异常
字符串结果=lbl.Name.ToString();
控制台写入线(结果);
}; 
}
第一个将抛出。使用该选项将返回默认值,并且(
?。
):

然后:

MessageBox.Show(result);

异常消息是什么?为什么不使用?它具有ItemsSource属性,并选择您试图模拟的EdItemhere@PatrickHofman我收到的信息是:System.InvalidOperationException:“序列没有元素”。@S.Akbari是的,对不起,我忘记回答你了。我不再得到异常,但它不会像应该的那样在控制台中写入结果。它只是写了一行空话。@KrzysztofSkowronek我想,我需要使用它,但我想等待,看看是否有办法用我的方式来做。但是谢谢你的回答,我会记在心里的。
using System.Windows; 
MessageBox.Show(result);