public void BindView (View view, object dataSource = null) { if (view == null) return; var isRoot = view == RootView; IList<WeakReference> lingeringTags = null; if (dataSource != null) { view.UpdateDataSource(dataSource); } if (isRoot) { lingeringTags = new List<WeakReference>(_viewTags); _viewTags.Clear(); } if (dataSource == null) { dataSource = FindParentDataSource(view.Parent); } BindViewTree (dataSource, view, lingeringTags); if (isRoot) { ClearBoundTags(lingeringTags); } }