DataGridView Tap 函数“对象引用未设置为对象的实例”错误

DataGridView Tap function "object reference not set to an instance of an object" error

提问人:Mert Altiparmak 提问时间:11/8/2023 最后编辑:Mert Altiparmak 更新时间:11/8/2023 访问量:57

问:

我正在开发 xamarin forms 应用程序,并制作了一个查询页面。用户在此处选择参数和工作查询。但是当我从Visual Studio获取apk并在手机上运行时,我遇到了这个错误。它在模拟器上的调试模式下运行良好。我不知道这有什么问题。

Devexpress datagridview 自动生成,因为我在这里使用了 dynmaic 对象。它必须是动态的,因为我们更改了查询并为此选择过程使用相同的页面。

 private async void dataTable_Tap(object sender, DevExpress.XamarinForms.DataGrid.DataGridGestureEventArgs e)
    {
        try
        {
            var menuItem = (DevExpress.XamarinForms.DataGrid.DataGridView)sender;
            if (menuItem != null)
            {
                if (e != null)
                {
                    dynamic dItem = e.Item;
                    if (dItem != null)
                    {
                        //Console.WriteLine(dItem[0]);
                        //Console.WriteLine(e.Item.ToString());
                        //Console.WriteLine(dItem[vNumber]);
                        string queryParameter = Preferences.Get("queryParameters", "");
                        queryParameter += dItem[vNumber] + pid + ";;";
                        Preferences.Set("queryParameters", queryParameter);
                        Console.WriteLine(queryParameter);
                        await PopupNavigation.Instance.PopAsync();
                        DependencyService.Get<IMessage>().UzunMesaj($"{dItem[vNumber]}");
                    }

                    
                }
            }


        
        }
        catch (Exception ex)
        {
            await DisplayAlert("", $"Can not select : \n{ex.Message}", "Tmm");
            throw;
        }



    }
C# Xamarin Xamarin.Forms DataGridView DevExpress

评论


答:

0赞 Mert Altiparmak 11/8/2023 #1

我解决了问题。

我更改了声明

以前:

动态 dItem = e.Item;

后:

var dataRow = e.Item 作为 DataRow;

评论

1赞 Alexandar May - MSFT 11/9/2023
1.我可以重现该问题,要解决它,您需要将 转换为.2. 很高兴您解决了它,您可以检查接受您自己的答案,因为它对那些面临相同问题的人会有所帮助。e.ItemDataRow
1赞 Mert Altiparmak 11/9/2023
谢谢亚历山大·梅的建议。我明天会接受我的答案。