private static SearchResult GenerateVisualPropertySearchResult(View view, VisualPropertyData data) { var propertyIntPtr = Interop.View.GetVisualProperty(view.SwigCPtr, data.ViewPropertyIndex, data.VisualPropertyIndex); if (NDalicPINVOKE.SWIGPendingException.Pending) { throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } var property = new Property(propertyIntPtr, true); if (property.propertyIndex == Property.InvalidIndex) { property.Dispose(); return(data.RelatedData == null ? null : GenerateVisualPropertySearchResult(view, data.RelatedData)); } SearchResult result = new SearchResult(property, data.ObjectConverter, data.PropertyValueConverter); if (data.RelatedData != null) { result.NextResult = GenerateVisualPropertySearchResult(view, data.RelatedData); } return(result); }
internal VisualPropertyData(int viewPropertyIndex, int visualPropertyIndex, OOConverter objectConverter = null, PPConverter propertyValueConverter = null, VisualPropertyData relatedData = null) { ViewPropertyIndex = viewPropertyIndex; VisualPropertyIndex = visualPropertyIndex; ObjectConverter = objectConverter; PropertyValueConverter = propertyValueConverter; RelatedData = relatedData; }