当项目的输入集中在组列表视图中时,获取Listview项目的上下文

时间:2019-02-12 22:38:37

标签: listview xamarin.forms

我有分组列表视图。 每个列表项中都有一个条目。

当焦点对准条目时如何获取分组列表视图项的上下文?

我的分组列表:

private ObservableCollection<Grouping_Activities> _laborMiscTimeList;
    public ObservableCollection<Grouping_Activities> LaborMiscTimeList
    {
        get { return _laborMiscTimeList; }
        set { _laborMiscTimeList = value; OnPropertyChanged("LaborMiscTimeList"); }
    }

这是列表项输入焦点上的代码:

private void DriverNotes_Focused(object sender, FocusEventArgs e)
    {
        var textBox = new TextBox("Notes");
        textBox.InputTextEntered += TextBoxPopup_InputTextEntered;
        PopupNavigation.PushAsync(textBox, true);
    }

其中TextBox是弹出窗口,它具有文本框和保存按钮。点击保存按钮后,我将得到一个事件注册,如下所示:

private void TextBoxPopup_InputTextEntered(object sender, string e)
    {
        if(e != null)
        {
            DALaborMiscTime dALaborMiscTime = new DALaborMiscTime();
            //here i need to get the context of list item and stote that string to one of the item field in DB

          //  ((LaborMiscTime)this.BindingContext).Comments = e;
           //dALaborMiscTime.SaveDriverComments(((LaborMiscTime)this.BindingContext).MobileID, e);
        }
    }

有帮助吗?

1 个答案:

答案 0 :(得分:1)

如果您需要获取重点关注的特定项目的数据,则只能执行:

private void DriverNotes_Focused(object sender, FocusEventArgs e)
{
    var entry = sender as Entry;
    var data = entry.BindingContext;

}

如果要获取整个列表的数据,可以通过两种方式获取:

1。直接使用模型(例如ColorsDataMpdel.All

class ColorsDataModel
  { 
    public ObservableCollection<ColorsDataModel> All{get;set;}
  }

2。使用ListView的ItemsSource属性(例如mylistview.ItemsSource

<ListView x:Name="mylistview">
    ......
</ListView>