public override object ProvideValue(IServiceProvider serviceProvider) { if (_text == null) { return(null); } string s = null; MarkupExtension m = _text as MarkupExtension; if (m != null) { s = m.ProvideValue(serviceProvider) as string; } if (s == null) { s = _text as string; } for (int i = 0; i < _remove.Length; i++) { if (s != null) { s = s.Replace(_remove[i].ToString(), string.Empty); } } return(s); }
public void Provides_GettextStringFormatConverter() { var serviceProvider = Substitute.For <IServiceProvider>(); var value = Assert.IsAssignableFrom <GettextStringFormatConverter>( _target.ProvideValue(serviceProvider)); Assert.Equal("MSGID {0}", value.MsgId); }
private static object GetEvaluatedValue(object value) { MarkupExtension markupExtension = value as MarkupExtension; if (markupExtension != null) { return(markupExtension.ProvideValue((IServiceProvider)null)); } ObjectDataProvider objectDataProvider = value as ObjectDataProvider; if (objectDataProvider != null) { return(objectDataProvider.ObjectInstance ?? (object)null); } return(value); }
public override object CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider) { object obj3; try { obj3 = me.ProvideValue(serviceProvider); } catch (Exception exception) { if (CriticalExceptions.IsCriticalException(exception)) { throw; } throw this.CreateException(System.Xaml.SR.Get("ProvideValue", new object[] { me.GetType() }), exception); } return(obj3); }
/// <summary> /// Sets the value of a dependency property on <paramref name="targetObject"/> using a markup extension. /// </summary> /// <remarks>This method does not support markup extensions like x:Static that depend on /// having a XAML file as context.</remarks> public static void SetValueToExtension(this DependencyObject targetObject, DependencyProperty property, MarkupExtension markupExtension) { if (targetObject == null) { throw new ArgumentNullException("targetObject"); } if (property == null) { throw new ArgumentNullException("property"); } if (markupExtension == null) { throw new ArgumentNullException("markupExtension"); } var serviceProvider = new SetValueToExtensionServiceProvider(targetObject, property); targetObject.SetValue(property, markupExtension.ProvideValue(serviceProvider)); }
/// <summary> /// Sets the value of a dependency property on <paramref name="targetObject"/> using a markup extension. /// </summary> /// <remarks>This method does not support markup extensions like x:Static that depend on /// having a XAML file as context.</remarks> public static void SetValueToExtension(this DependencyObject targetObject, DependencyProperty property, MarkupExtension markupExtension) { // This method was copied from ICSharpCode.Core.Presentation (with permission to switch license to X11) if (targetObject == null) { throw new ArgumentNullException(nameof(targetObject)); } if (property == null) { throw new ArgumentNullException(nameof(property)); } if (markupExtension == null) { throw new ArgumentNullException(nameof(markupExtension)); } var serviceProvider = new SetValueToExtensionServiceProvider(targetObject, property); targetObject.SetValue(property, markupExtension.ProvideValue(serviceProvider)); }
public static object Evaluate(MarkupExtension markupExtension) { object result = null; RunOnStaThread(() => { var target = new TargetElement(); var provideValueTarget = Substitute.For <IProvideValueTarget>(); var serviceProvider = Substitute.For <IServiceProvider>(); provideValueTarget.TargetObject.Returns(target); provideValueTarget.TargetProperty.Returns(TargetElement.ValueProperty); serviceProvider.GetService(typeof(IProvideValueTarget)).Returns(provideValueTarget); target.Value = markupExtension.ProvideValue(serviceProvider); result = target.Value; }); return(result); }
public override object ProvideValue(IServiceProvider serviceProvider) { if (this._text == null) { return(null); } string str = this._remove ?? "_"; string str1 = null; MarkupExtension markupExtension = this._text as MarkupExtension; if (markupExtension != null) { str1 = markupExtension.ProvideValue(serviceProvider) as string; } if (str1 == null) { str1 = this._text as string; } if (str1 == null) { return(null); } return(str1.Replace(str, string.Empty)); }
private DependencyProperty SetUnusedStorageProperty(DependencyObject obj, object value) { var property = StorageProperties.FirstOrDefault(p => obj.ReadLocalValue(p) == DependencyProperty.UnsetValue); if (property == null) { property = DependencyProperty.RegisterAttached("Storage" + StorageProperties.Count, typeof(object), typeof(MethodBindingExtension), new PropertyMetadata()); StorageProperties.Add(property); } MarkupExtension markupExtension = value as MarkupExtension; if (markupExtension != null) { object resolvedValue = markupExtension.ProvideValue(new ServiceProvider(obj, property)); obj.SetValue(property, resolvedValue); } else { obj.SetValue(property, value); } return(property); }
// Token: 0x06000691 RID: 1681 RVA: 0x00014908 File Offset: 0x00012B08 internal DependencyObject InstantiateTree(UncommonField <HybridDictionary[]> dataField, DependencyObject container, DependencyObject parent, List <DependencyObject> affectedChildren, ref List <DependencyObject> noChildIndexChildren, ref FrugalStructList <ChildPropertyDependent> resourceDependents) { EventTrace.EasyTraceEvent(EventTrace.Keyword.KeywordXamlBaml, EventTrace.Level.Verbose, EventTrace.Event.WClientParseFefCrInstBegin); FrameworkElement frameworkElement = container as FrameworkElement; bool flag = frameworkElement != null; DependencyObject dependencyObject = null; if (this._text != null) { IAddChild addChild = parent as IAddChild; if (addChild == null) { throw new InvalidOperationException(SR.Get("TypeMustImplementIAddChild", new object[] { parent.GetType().Name })); } addChild.AddText(this._text); } else { dependencyObject = this.CreateDependencyObject(); EventTrace.EasyTraceEvent(EventTrace.Keyword.KeywordXamlBaml, EventTrace.Level.Verbose, EventTrace.Event.WClientParseFefCrInstEnd); FrameworkObject frameworkObject = new FrameworkObject(dependencyObject); Visual3D visual3D = null; bool flag2 = false; if (!frameworkObject.IsValid) { visual3D = (dependencyObject as Visual3D); if (visual3D != null) { flag2 = true; } } bool isFE = frameworkObject.IsFE; if (!flag2) { FrameworkElementFactory.NewNodeBeginInit(isFE, frameworkObject.FE, frameworkObject.FCE); if (StyleHelper.HasResourceDependentsForChild(this._childIndex, ref resourceDependents)) { frameworkObject.HasResourceReference = true; } FrameworkElementFactory.UpdateChildChains(this._childName, this._childIndex, isFE, frameworkObject.FE, frameworkObject.FCE, affectedChildren, ref noChildIndexChildren); FrameworkElementFactory.NewNodeStyledParentProperty(container, flag, isFE, frameworkObject.FE, frameworkObject.FCE); if (this._childIndex != -1) { StyleHelper.CreateInstanceDataForChild(dataField, container, dependencyObject, this._childIndex, this._frameworkTemplate.HasInstanceValues, ref this._frameworkTemplate.ChildRecordFromChildIndex); } if (this.HasLoadedChangeHandler) { BroadcastEventHelper.AddHasLoadedChangeHandlerFlagInAncestry(dependencyObject); } } else if (this._childName != null) { affectedChildren.Add(dependencyObject); } else { if (noChildIndexChildren == null) { noChildIndexChildren = new List <DependencyObject>(4); } noChildIndexChildren.Add(dependencyObject); } if (container == parent) { TemplateNameScope value = new TemplateNameScope(container); NameScope.SetNameScope(dependencyObject, value); if (flag) { frameworkElement.TemplateChild = frameworkObject.FE; } else { FrameworkElementFactory.AddNodeToLogicalTree((FrameworkContentElement)parent, this._type, isFE, frameworkObject.FE, frameworkObject.FCE); } } else { this.AddNodeToParent(parent, frameworkObject); } if (!flag2) { StyleHelper.InvalidatePropertiesOnTemplateNode(container, frameworkObject, this._childIndex, ref this._frameworkTemplate.ChildRecordFromChildIndex, false, this); } else { for (int i = 0; i < this.PropertyValues.Count; i++) { if (this.PropertyValues[i].ValueType != PropertyValueType.Set) { throw new NotSupportedException(SR.Get("Template3DValueOnly", new object[] { this.PropertyValues[i].Property })); } object obj = this.PropertyValues[i].ValueInternal; Freezable freezable = obj as Freezable; if (freezable != null && !freezable.CanFreeze) { obj = freezable.Clone(); } MarkupExtension markupExtension = obj as MarkupExtension; if (markupExtension != null) { ProvideValueServiceProvider provideValueServiceProvider = new ProvideValueServiceProvider(); provideValueServiceProvider.SetData(visual3D, this.PropertyValues[i].Property); obj = markupExtension.ProvideValue(provideValueServiceProvider); } visual3D.SetValue(this.PropertyValues[i].Property, obj); } } for (FrameworkElementFactory frameworkElementFactory = this._firstChild; frameworkElementFactory != null; frameworkElementFactory = frameworkElementFactory._nextSibling) { frameworkElementFactory.InstantiateTree(dataField, container, dependencyObject, affectedChildren, ref noChildIndexChildren, ref resourceDependents); } if (!flag2) { FrameworkElementFactory.NewNodeEndInit(isFE, frameworkObject.FE, frameworkObject.FCE); } } return(dependencyObject); }