如何在Listview中只选择一个切换开关?

维塞尔·图兰

我有一个Listview有拨动开关的。我只想Listview用切换开关选择一项当我选择第二个切换时,第一个切换必须再次停用。例如在图片中;当我选择 Rekorida 然后我选择 时MerchandizingRekorida必须转回禁用。每次只能激活一个选项。是否可以在 Xamarin 中做到这一点?

示例列表视图

我的列表视图代码:

 <ScrollView>
                    <ListView x:Name="ShipListView" HasUnevenRows="True" SeparatorVisibility="Default" SelectionMode="Single">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <ViewCell>

                                    <Grid Margin="4, 3, 4, 3" Padding="2" BackgroundColor="White">
                                        <Grid.RowDefinitions HeightRequest="40">
                                            <RowDefinition></RowDefinition>
                                            <!--<RowDefinition Height="20"></RowDefinition>-->
                                        </Grid.RowDefinitions>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="80*"></ColumnDefinition>
                                            <ColumnDefinition Width="*"></ColumnDefinition>
                                            <ColumnDefinition Width="40*"></ColumnDefinition>
                                        </Grid.ColumnDefinitions>
                                        <Label Text="{Binding ShipName}" TextColor="DeepPink" Grid.Column="0" FontAttributes="Bold"/>
                                        <Switch  IsToggled="{Binding Selected}" Grid.Column="2" Toggled="OnShipToggled" />
                                    </Grid>

                                </ViewCell>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </ScrollView>

还有我的功能

async void OnShipToggled(object sender, ToggledEventArgs e)
    {
        
        checkShipSelected = !checkShipSelected;
        if(checkShipSelected)
        {
            
            ViewCell cell = (sender as Switch).Parent.Parent as ViewCell;

            ParametersMemberShipInformation model = cell.BindingContext as ParametersMemberShipInformation;

            if (model != null)
            {
                selectedMemberShipOid = model.Oid;
            }
        }
        else
        {
            return;
        }
        

    }

我正在尝试获取列表视图中所选项目的id,我成功地做到了。但是我希望用户只能同时选择一个项目,因为视觉效果好,不要混淆。

哈马德·沙比尔

在您的代码隐藏文件中获取您的视图模型,然后过滤掉选定的切换并将其余的标记为 false

private YourViewModel MyViewModel { get => BindingContext as YourViewModel; }

if (model != null)
{
 selectedMemberShipOid = model.Oid;
 MyViewModel.ShipListView.Where(x=> x.Oid != 
     selectedMemberShipOid).Foreach(x=> x.Selected = false)
 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用CSS切换基于另一个的一个开关?

如何在一个序列中的三个或多个div之间切换/切换类?

如何创建一个开关来切换要使用的关系?

如何在一个查询中切换Postgres中的布尔值

如何在Visual Studio中仅概述一个切换

如何在单击另一个切换按钮时禁用 Bootstrap 切换按钮?

如何制作一个列表和网格视图切换开关控件,以在AngularJS中加载局部控件?

Angular Material Sidebar-如何在另一个组件中触发绘制切换?

如何在WPF中选择两个切换按钮之一?

Java中另一个切换功能中的“切换”功能

下一个列表切换时如何关闭切换

如何在另一个切换为true时将切换更改为false

滑动切换 | 一次只打开一个div

如何在一个终端上的用户之间切换?

如何在另一个组件中切换 mat-sidenav?

如何在单击时切换仅一个元素的类

如何在切换后删除一个类

如何仅在一个Activity android中的两个布局之间切换

如何从一个按钮切换div

如何在一个元素上创建一个事件切换 HTML 类,同时从其他元素中删除它?

Swift:如何切换两个UI开关

ionic 4-在选择一个选项时获取离子切换值作为文本输入并关闭所有其他开关

CSS:如何在<a>链接上切换开关动作?

如何在Flutter集成测试中切换开关

简单的文本切换,只打开下一个 p

如何使用Bootstrap切换来切换另一个Bootstrap切换

切换切换另一个切换

如何制作一个切换按钮来添加和从div中“删除” div?

如何只为熊猫中的一个特定行切换列元素?