【问题标题】:How to perform action when CheckBox list view item is selected?选择 CheckBox 列表视图项时如何执行操作?
【发布时间】:2016-06-20 14:28:02
【问题描述】:

我有一个 Xamarin.Forms 项目,我在其中使用 Xlabs 来实现复选框。我可以让他们出现,这很棒。我希望能够做到这一点:

void OnSelection(object sender, SelectedItemChangedEventArgs e)
    {
        if (e.SelectedItem == null)
            return;
        var selectedStudent = ((ListView)sender).SelectedItem as Student;

        // set time of student checkin
    }

但是用我的复选框。我希望能够在发生时处理复选框选择。根据我在网上看到的情况,我可以为我的学生对象selected 设置一个新的布尔属性,但这根本不适用于我的项目。这是我目前的做法:

    void OnSelection(object sender, EventArgs e)
    {
        CheckBox isCheckedOrNot = (CheckBox)sender;
        var name = isCheckedOrNot.DefaultText;

        //not sure what to do here?
        var student = ((CheckBox)sender)...

        // set time of student checkin
    }

编辑: 复选框声明如下:

<ViewCell>
    <ViewCell.View>
        <controls:CheckBox DefaultText="{Binding complete_name}"  TextColor="Black" CheckedChanged="OnSelection" Checked="{Binding selected}"/>
    </ViewCell.View>
</ViewCell>

【问题讨论】:

  • 但这能让我在我放下复选框时立即知道它已被触摸吗? CheckedItems 似乎是你事后对你选择的所有项目做某事的事情
  • 我不知道这个?尝试使用说没有名称 ItemChecked 的属性时出现构建错误
  • 如果我在 xaml 中声明复选框,我想我不确定如何实现 ItemChecked 事件?
  • 抱歉,我没有注意到 x-tags。

标签: c# xaml checkbox xamarin xlabs


【解决方案1】:

我对 xaml/c# 很陌生,所以对于提出这个糟糕的问题,我深表歉意,但这很简单:

    void OnSelection(object sender, EventArgs e)
    {
        CheckBox isCheckedOrNot = (CheckBox)sender;
        var selectedStudent = isCheckedOrNot.BindingContext as Student;
        ...
    }

获取您检查的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2015-07-13
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多