将列表视图中的数据打印到 firebase

Printing data in listview to firebase

我之前问过这个,但是没人能回答。在此先感谢可以提供帮助的人。

<Grid>

        <ListView x:Name="lstOrder">

            <ListView.ItemTemplate>

                <DataTemplate>

                    <ViewCell>

                        <Grid>

                            <Grid.RowDefinitions>

                                <RowDefinition/>
                                <RowDefinition/>

                            </Grid.RowDefinitions>

                            <Grid.ColumnDefinitions>

                                <ColumnDefinition/>
                                <ColumnDefinition/>

                            </Grid.ColumnDefinitions>

                            <Label Text="{Binding OrderName}" Grid.Row="0" Grid.Column="0" HorizontalTextAlignment="Start" x:Name="lblName"/>
                            <Label Text="{Binding OrderCount}" Grid.Row="0" Grid.Column="1" HorizontalTextAlignment="Start" x:Name="lblStepperValue"/>
                            <Label Text="{Binding OrderDetail}" Grid.Row="1" Grid.Column="0" HorizontalTextAlignment="Start" x:Name="edtDetail"/>
                            <Label Text="{Binding OrderPrice}" Grid.Row="1" Grid.Column="1" HorizontalTextAlignment="Start" x:Name="lblPriceNormal"/>

                        </Grid>

                    </ViewCell>

                </DataTemplate>

            </ListView.ItemTemplate>

        </ListView>

        <Button BackgroundColor="Red" VerticalOptions="End" Text="Sipariş ver" x:Name="giveOrder" Clicked="giveOrder_Clicked"/>

    </Grid>

这样我就有了一个简单的列表视图。数据从 realmDB 发送到这个列表视图。我想在单击按钮时将从 RealmDB 发送到此列表视图的数据发送到我的 Firebase 数据库。

我不想通过 firebase 将数据写入列表视图。

我想做的是将listview中的数据打印到firebase。

这就像将标签上的文本打印到 Firebase。我想将列表视图中的数据打印到 firebase。

这是我按钮的代码块。所以当我按下这个按钮时,listview中的数据将被写入firebase。

即会将标签上的数据发送到firebase。

private async void giveOrder_Clicked(object sender, System.EventArgs e)
    {
        await firebaseHelper.AddDoner(lstOrder.**!I can't do this part!**);
    }

希望它足够揭示。

谢谢:)

这是我为firebase写的部分,不知道这里会不会有错误?

public class FirebaseHelper
{
    readonly FirebaseClient firebase = new FirebaseClient("my firebase link");

    public async Task<List<DonerModel>> GetAllDoners()
    {
        return (await firebase
          .Child("Doners")
          .OnceAsync<DonerModel>()).Select(item => new DonerModel
          {
              OrderList = item.Object.OrderList
          }).ToList();
    }
    public async Task AddDoner( string lstOrder)
    {

        await firebase
          .Child("Doners")
          .PostAsync(new DonerModel() { OrderList = lstOrder});
    }
}

enter image description here

要获取已绑定到 ListView 的对象列表,您可以使用 ItemSource 属性.

另一点需要注意的是,如果您需要确切的类型(在您的示例中为 Order),您可以这样做

private async void giveOrder_Clicked(object sender, System.EventArgs e)
{
    if(lstOrder.ItemsSource != null && lstOrder.ItemsSource is List<OrderRealm> orders)
    {
        //send orders to firebase
        foreach(var order in orders)
        {
             await firebaseHelper.AddDoner(order.*field you want to add to firebase*);
        }
        
    }
}