0

我有一个项目类,其名称和价格的值存储在 SQLite 数据库中。我在 Listview 中显示它们,名称为 Label,价格为 Entry。

<ListView x:Name="itemListView">
  <DataTemplate>
    <ViewCell>
      <StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand">
        <Label Text="{Binding name}"/>
        <Entry Text="{Binding Path=price, Mode=TwoWay, StringFormat='{}{0:c}'}" Keyboard="Numeric" Completed="updateItem" />
      </StackLayout>
    </ViewCell>
  </DataTemplate>
</ListView>

我想这样做,所以当条目更改完成时,它将使用新的价格值更新 SQLite 数据库中的项目,但是,我不知道如何检索从 Listview 完成的项目。我想我需要使用以下方法,但我不知道该放什么。

async void updateItem(object sender, EventArgs e)
{
    //Code to update the item with the SQLite database with the new price
}
4

1 回答 1

0

在您的 updateItem 处理程序中,项目的 BindingContext 应该是来自正在更新的 ItemSource 的元素

async void updateItem(object sender, EventArgs e)
{
    var item = (MyItemType) ((Entry)sender).BindingContext;

    //Code to update the item with the SQLite database with the new price
}
于 2017-02-05T23:05:03.630 回答