我已经定义了一个带有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;
答案 0 :(得分:2)
当您创建或重新初始化单元格时,现在是将单元格中任何控件的状态与要将行为附加到的实际列/行绑定的好时机。
您的方法是正确的,因为它会更新您想要的值。但遗憾的是,因为您使用ValueChanged作为事件,所以每次单元格出列时都会添加一个新的事件处理程序。
因此,您需要首先删除旧的事件处理程序,然后添加一个新的事件处理程序。这意味着您需要使用辅助方法来允许ValueChanged + = FOO和ValueChanged - = FOO
答案 1 :(得分:0)
我认为这不是GetCell方法,这是cellForRowAtIndexPath。 是的,它是一个正确的位置,可以将值粘贴到单元格中。