MVC如何在自定义单元格中获取控件的值的正确方法?

时间:2012-01-23 06:53:39

标签: iphone ios xamarin.ios uitextfield

我已经定义了一个带有UISwitch控件的自定义单元格,GetCell方法是正确的位置和正确的方法来获取单元格控件的值并将其分配给比视图中的对象更持久的对象? (GetCell方法示例)。

if (indexPath.Section == 0)
{
    switch (indexPath.Row)
    {
        case 0:
        TVCellTwoColWBool cell = tableView.DequeueReusableCell(_cIDTwoColWBool) as TVCellTwoColWBool;
        if(cell==null)
            cell = new TVCellTwoColWBool("Date Filtering", MappedList.DateFilter, _cIDTwoColWBool);
        cell.DataView.SWData.ValueChanged += (sender, e) => {MappedList.DateFilter = cell.DataView.SWData.On;};
        return cell;

2 个答案:

答案 0 :(得分:2)

当您创建或重新初始化单元格时,现在是将单元格中任何控件的状态与要将行为附加到的实际列/行绑定的好时机。

您的方法是正确的,因为它会更新您想要的值。但遗憾的是,因为您使用ValueChanged作为事件,所以每次单元格出列时都会添加一个新的事件处理程序。

因此,您需要首先删除旧的事件处理程序,然后添加一个新的事件处理程序。这意味着您需要使用辅助方法来允许ValueChanged + = FOO和ValueChanged - = FOO

答案 1 :(得分:0)

我认为这不是GetCell方法,这是cellForRowAtIndexPath。 是的,它是一个正确的位置,可以将值粘贴到单元格中。