指定的演员无效(xamarin 表单)

问题描述 投票:0回答:2

这个完全相同的代码在一小时前运行得很好。 调整了一些东西,然后 ctrl+Z 回到这个状态 现在,每次我在 Android 模拟器上运行它时,当我尝试加载所有产品页面时,它都会挂起并崩溃。 VS2019 通常很有帮助,但在这种情况下没有: System.InvalidCastException:'指定的强制转换无效。' - 尝试搜索,最后在这里,我发现了其他一些类似的 titled 问题,但情况很糟糕不同的。不知道发生了什么,运行前 IDE 没有错误消息。 where it it seems to fail 编辑#1:断点似乎位于代码隐藏的末尾。 编辑 #2:尝试了 iOS 和同样的问题,除了现在崩溃时,IDE 会弹出一个窗口: Main.iOS "UIApplication.Main(args, null, "AppDelegate");"并给我读到同样的错误。 - 再次感到困惑,因为一切都工作正常。而且我已经好几天没有看过 Main.cs 了,更不用说更改它了。

public class Product
{
    public string UPC { get; set; }
    public string Brand { get; set; }
    public int Count { get; set; }
    public string Manufacturer { get; set; }
    public string Style { get; set; }
    public string SellPrice { get; set; }
    public double BuyPrice { get; set; }
    public string Market { get; set; }
    public bool Buying { get; set; }
    public string BoxImage { get; set; }
}

<ContentPage.BindingContext>
        <model:Product/>
    </ContentPage.BindingContext>
    <ContentPage.Content>
        <StackLayout>
            <ListView x:Name="productsListView">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="50"/>
                                <ColumnDefinition Width="75"/>
                                <ColumnDefinition Width="75"/>
                                <ColumnDefinition Width="75"/>
                            </Grid.ColumnDefinitions>
                            <Label Text="{Binding UPC}"
                                       Grid.Column="1" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                            <Label Text="{Binding Brand}"
                                       Grid.Column="2" HorizontalTextAlignment="End" VerticalTextAlignment="Center"/>
                            <Label Text="{Binding Count}"
                                       Grid.Column="3" HorizontalTextAlignment="Start" VerticalTextAlignment="Center"/>
                            <Label Text="{Binding Market}"
                                       Grid.Column="4" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                            <Label Text="{Binding BuyPrice}"
                                       Grid.Column="5" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
    </ContentPage.Content>

public partial class AllProductsPage : ContentPage
{
    public AllProductsPage()
    {
        InitializeComponent();
    }
    protected override void OnAppearing()
    {
        base.OnAppearing();
        {
            using (SQLiteConnection conn = new SQLiteConnection(App.DatabasePath))
            {
                conn.CreateTable<Product>();
                var products = conn.Table<Product>().ToList();
                productsListView.ItemsSource = products;
            }
        }
    }
}
c# xaml listview xamarin.forms data-binding
2个回答
3
投票

我不知道为什么,但在

<ViewCell></ViewCell>
周围添加
<Grid></Grid>
似乎可以让它在某种程度上发挥作用。

至少我现在可以继续前进,但我真的希望有人能解释一下。 为什么会这样?为什么不清楚(在 IDE 或文档中)?


0
投票

en mi caso el error se producía alintar recuperar un Campo de una tabla cuyo valor = nulo; 致敬

© www.soinside.com 2019 - 2024. All rights reserved.