MonoMobile.Views.ViewSource.UpdateCell C# (CSharp) Method

UpdateCell() public method

public UpdateCell ( UITableViewCell cell, NSIndexPath indexPath ) : void
cell UITableViewCell
indexPath NSIndexPath
return void
		public override void UpdateCell(UITableViewCell cell, NSIndexPath indexPath)
		{			
			base.UpdateCell(cell, indexPath);
			
			if (PerformActionIfCellListElement(cell, indexPath, (listSource) => listSource.UpdateCell(cell, indexPath)))
				return;

			var memberData = GetMemberData(indexPath);

			if (memberData.Value != null && cell.DetailTextLabel != null)
				cell.DetailTextLabel.Text = memberData.Value.ToString();

			foreach(var section in Sections.Values)
			{
				if (section.Views.ContainsKey(cell))
				{
					var views = section.Views[cell];
		
					if (views.Count > 0)
					{
						foreach (var view in views)
						{
							var viewCaption = view as ICaption;
							if (viewCaption != null && string.IsNullOrEmpty(viewCaption.Caption))
							{
								viewCaption.Caption = ViewParser.GetCaption(memberData.Member);
							}
			
							var dc = view as IDataContext<MemberData>;
							if (dc != null)
							{
								if (dc.DataContext != memberData)
									dc.DataContext = memberData;
							}
			
							var themeable = view as IThemeable;
							if (themeable != null)
							{
								if (themeable.Theme != null)
								{
									themeable.Theme.Cell = cell;
								}
								
								themeable.InitializeTheme(cell);
							}
						}
					}
				}
			}
		}