【问题标题】:how to add checkbox in listview using xamarin forms如何使用 xamarin 表单在列表视图中添加复选框
【发布时间】:2019-09-16 18:19:55
【问题描述】:

我想在列表视图中使用 xaml 创建一个复选框,在选择多个复选框单击按钮以获取所有选定值之后。我的代码是:

<ContentPage.Content>
    <ListView  x:Name="ProductsListView">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <ViewCell.View>
                        <StackLayout Spacing="0">
                            <Label Text="{Binding retail_modified_item_id}" 
                               TextColor="Blue" FontSize="13" />
                            <Label Text="{Binding name, StringFormat='Name : 
                               {0:N}'}" TextColor="black" FontSize="10"  />
                            <Label Text="{Binding retail_price, 
                               StringFormat='Price : {0:N}'}" 
                               TextColor="black" FontSize="10" />
                        </StackLayout>
                    </ViewCell.View>
                </ViewCell>                            
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</ContentPage.Content>

我的输出是; output without checkbox

我尝试了来自https://www.ignatiuz.com/blog/xamarin/button-check-box-with-list-item-in-xamarin-forms-listview/的一些示例代码

但我得到 input:checkbox not found

我是 xamarin 新手,请提供一些示例代码或链接来执行此操作

【问题讨论】:

    标签: xaml checkbox xamarin.forms


    【解决方案1】:

    您可以使用 Nuget 中的Plugin.InputKit

    用法

    <?xml version="1.0" encoding="utf-8" ?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 xmlns:local="clr-namespace:xxx"
                 xmlns:input="clr-namespace:Plugin.InputKit.Shared.Controls;assembly=Plugin.InputKit"
                 x:Class="xxx.MainPage">
    
    
    <ContentPage.Content>
     <ListView  x:Name="ProductsListView">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <ViewCell.View>
                        <StackLayout Spacing="0">
                            <Label Text="{Binding retail_modified_item_id}" 
                               TextColor="Blue" FontSize="13" />
                            <Label Text="{Binding name, StringFormat='Name : 
                               {0:N}'}" TextColor="black" FontSize="10"  />
                            <Label Text="{Binding retail_price, 
                               StringFormat='Price : {0:N}'}" 
                               TextColor="black" FontSize="10" />
                            <input:CheckBox Text="xxx" Type="Check"/>  
                        </StackLayout>
                    </ViewCell.View>
                </ViewCell>                            
            </DataTemplate>
        </ListView.ItemTemplate>
     </ListView>
    </ContentPage.Content>        
    
    </ContentPage>
    

    【讨论】:

    • @AnuPriya 可以提供样品吗?
    【解决方案2】:

    我写了一篇关于在 xamarin 表单中实现多选列表视图的内容。请检查:https://androidwithashray.blogspot.com/2018/03/multiselect-list-view-using-xamarin.html

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      使用OnCheckChanged 方法向本地集合添加/删除值。 我是这样用的:

      <ListView>
          <ListView.ItemTemplate>
              <DataTemplate>
                  <ViewCell>
                      <StackLayout Orientation="Horizontal">
                          <Label Text="Some item" />
                          <CheckBox 
                              IsChecked="true" 
                              CheckedChanged="OnCheckedChanged" 
                              HorizontalOptions="EndAndExpand"/>
                      </StackLayout>
                  </ViewCell>
              </DataTemplate>
          </ListView.ItemTemplate>
      </ListView>
      

      【讨论】:

      • 除非别无选择,否则我不是 nuGet 的忠实粉丝。我知道这是有争议的,也许我在这方面错了,但无论如何。谢谢你的回答
      【解决方案4】:

      如果您需要在列表视图中包含复选框,您可以使用 Xamarin.Forms.InputKi (https://github.com/enisn/Xamarin.Forms.InputKit)

      然后我会在 DataTemplate 的 ViewCell 中这样定义它:

       <input:CheckBox Text="Hello World I'm Option 2" Type="Check"/>
      

      根据您的场景,您还可以使用可绑定的属性和事件:

      CheckChanged:(事件)检查更改时调用。

      CheckChangedCommand:(Command)可绑定命令,check时执行 改变了。

      Key: (int) 一个可以设置为将复选框定义为 ID 的键。

      文本:(字符串)显示描述的文本

      IsChecked: (bool) 复选框选中的情况。将双向绑定工作为 默认。

      颜色:(颜色)所选支票的颜色。

      TextColor:(颜色)描述文本的颜色。

      Type:(CheckType)复选框选中样式的类型。 (Check,Cross,Star,Box 等)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-21
        • 2013-09-01
        相关资源
        最近更新 更多