首页 > 解决方案 > ListView (MVVM) 中的复选框 | Xamarin 形式

问题描述

我正在 Xamarin 表单中创建 ToDo 应用程序。我在显示待办事项的列表视图中的复选框有问题。选中复选框后,我无法找到如何获取 ToDo...

XAML 中的复选框:

<CheckBox IsChecked="{Binding IsChecked, Mode=TwoWay}" Grid.Row="0" Grid.Column="1" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" />

如果在 ViewModel 中选中复选框,则获取信息的方法:

    private bool isChecked;
    public bool IsChecked
    {
        get { return isChecked; }
        set
        {
            if (isChecked != value)
            {
                isChecked = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("IsSelected"));
                    App.Current.MainPage.DisplayAlert("Title", " item have been selected", "Cancel");

                }
            }
        }
    }

对于如何在 MVVM 中实施的每一个建议,我将不胜感激。

标签: c#xamarinmvvmxamarin.forms

解决方案


MVVM 方法:

如果您的复选框在 List 内,那么binding property它将在您的Model不是. ViewModel要获取您可以使用的所有检查值LinQWhere子句根据 bool 所在的条件从列表中获取IsChecked数据true

子句的示例Where可以是:

var CheckedItemList= yourList.Where(m => m.IsChecked== true).ToList();

请参阅下面的链接以了解有关 列表绑定如何在 MVVM 中工作的更多信息


推荐阅读