FlexGridSample.FilterSampleViewController.doFilterOrEdit C# (CSharp) Метод

doFilterOrEdit() приватный Метод

private doFilterOrEdit ( UIBarButtonItem sender ) : void
sender UIBarButtonItem
Результат void
		partial void doFilterOrEdit (UIBarButtonItem sender)
		{
			if(sender.Title.Equals("Filter"))
			{
				filterData = new List<FilterData>();
				foreach(GridColumn gc in flexGrid.Columns)
				{
					filterData.Add(new FilterData {FilterColumn=gc.Binding, FilterOperation = 0, FilterString = null });
				}
			}

			UIStoryboard storyboard = UIStoryboard.FromName ("MainStoryboard", null);
			FilterSampleEditorViewController controller = (FilterSampleEditorViewController)storyboard.InstantiateViewController ("FilterSampleEditor");

			controller.FilterDataLoadingAction+=()=>
			{
				List<FilterData> newFilterData = new List<FilterData>();
				for(int i = 0; i < filterData.Count; i++)
					newFilterData.Add((FilterData)filterData[i].Clone());

				controller.FlexGrid.ItemsSource = newFilterData;
				controller.FlexGrid.IsReadOnly = false;
				controller.FlexGrid.ColumnHeaderFont = UIFont.BoldSystemFontOfSize (this.flexGrid.Font.PointSize);

				GridColumn col = controller.FlexGrid.Columns[1];
				col.DataMap = new GridDataMap(FilterOperation.StandardOperations(), new NSString("Identifier"), new NSString("Title"));
			};

			controller.FilterDataApplyAction+=()=>
			{
				sender.Title = "Edit";
				removeFilterAction.Enabled = true;

				this.filterData = (List<FilterData>)controller.FlexGrid.ItemsSource;

				this.flexGrid.CollectionView.Filter = (object item)=>
				{
					bool result = true;
					for(int i = 0; i < filterData.Count; i++)
					{
						FilterData thisItem = filterData[i];
						GridColumn col = this.flexGrid.Columns[i];
						string objStr = col.GetBoundValue(item)!=null?col.GetBoundValue(item).ToString().ToLower():null;
						string filterStr = thisItem.FilterString!=null?thisItem.FilterString.ToLower():null;

						if(filterStr != null && filterStr.Length != 0) 
						{
							switch(thisItem.FilterOperation)
							{
							case 0:
								if(objStr==null || !objStr.Contains(filterStr)) result = false;
								break;
							case 1: 
								if(objStr==null || !objStr.StartsWith(filterStr)) result = false;
								break;
							case 2:
								if(objStr==null || !objStr.EndsWith(filterStr)) result = false;
								break;
							case 3: 
								if(objStr==null || !objStr.Equals(filterStr)) result = false;
								break;
							}
						}
					}
					return result;
				};
			};


			this.NavigationController.PushViewController(controller, true);


		}
	}