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); }
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); }