繁体   English   中英

列表视图中的复选框-Xamarin.Forms

[英]Checkboxes inside a list view - Xamarin.Forms

我正在开发Xamarin.Forms应用程序。 我的要求是显示一个可用作Json的对象列表,并为每个列表项添加一个复选框,当选中该项目时,我想将该项目存储在单独的本地DB中以备将来使用。
这是我的项目模板。

<ListView.ItemTemplate>
    <DataTemplate>
        <ViewCell>
            <Grid VerticalOptions="Center">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="3*" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <controls:CheckBox x:Name="Completed" />
                <Label x:Name="index" 
                       HorizontalOptions="Center"
                       Text="{Binding index}"
                       Grid.Column="1"/>
                <Label x:Name="title"
                       Text="{Binding title}"
                       Grid.Column="2" />
                <Label x:Name="count"
                       HorizontalOptions="Center"
                       Text="{Binding count}"
                       Grid.Column="3" />
            </Grid>
        </ViewCell>
    </DataTemplate>
</ListView.ItemTemplate>

这是ListView的项目源。

SurahNames.ItemsSource = viewModel.surahs;

我的问题是:

  • 如何绑定CheckBox的布尔值?
  • 在哪里设置绑定上下文?
  • 以及如何获取相应的对象,以便可以将其添加到列表中并将其存储在数据库中?

您可以像这样绑定选定的项目

private object _selectedItem;
public object SelectedItem
{
    get { return _selectedItem; }
    set
    {
        cast to your model
        YourModel val=(YourModel)value;
        //checked is the new proprety that you added to ur model
        val.Checked=true;
        dosmthwithvalue(val);
       //this to unselect the item in listview /remove color
        _selectedItem = null;
        OnPropertyChanged("SelectedItem");
    }
}

对于CheckBox您需要将选中的属性添加到模型中。
我没有测试过它,也许这不是最佳解决方案,但是我认为它会做您想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM