public static object GetPathValue( object sourceObject, string path ) { var targetObj = new GeneralUtilities(); BindingOperations.SetBinding( targetObj, GeneralUtilities.StubValueProperty, new Binding( path ) { Source = sourceObject } ); object value = GeneralUtilities.GetStubValue( targetObj ); BindingOperations.ClearBinding( targetObj, GeneralUtilities.StubValueProperty ); return value; }
public static object GetBindingValue( object sourceObject, Binding binding ) { Binding bindingClone = new Binding() { BindsDirectlyToSource = binding.BindsDirectlyToSource, Converter = binding.Converter, ConverterCulture = binding.ConverterCulture, ConverterParameter = binding.ConverterParameter, FallbackValue = binding.FallbackValue, Mode = BindingMode.OneTime, Path = binding.Path, StringFormat = binding.StringFormat, TargetNullValue = binding.TargetNullValue, XPath = binding.XPath }; bindingClone.Source = sourceObject; var targetObj = new GeneralUtilities(); BindingOperations.SetBinding( targetObj, GeneralUtilities.StubValueProperty, bindingClone ); object value = GeneralUtilities.GetStubValue( targetObj ); BindingOperations.ClearBinding( targetObj, GeneralUtilities.StubValueProperty ); return value; }