bool OnResolveDynamicContentTemplate(ResolveTemplateParams resolveParams) { var argument = (DesignTimeArgument)resolveParams.Cell.DataContext; //get editor associated with variable's value var editorType = argument.GetDynamicPropertyValueEditorType(DesignTimeArgument.ArgumentDefaultValueProperty); //if yes there is a custom one - use it if (!typeof(DesignTimeArgument.DefaultValueEditor).IsAssignableFrom(editorType)) { //get inline editor template - it will be used for both templates - view and editing; resolveParams.Template = argument.GetDynamicPropertyValueEditor(DesignTimeArgument.ArgumentDefaultValueProperty).InlineEditorTemplate; resolveParams.IsDefaultTemplate = false; } else { //no custom editor - depending on grid state display either editable or readonly expression template string key = string.Empty; switch (argument.GetArgumentDirection()) { case PropertyKind.Property: key = resolveParams.Cell.IsEditing ? "argumentPropertyEditableTemplate" : "argumentPropertyReadOnlyTemplate"; break; case PropertyKind.InArgument: key = resolveParams.Cell.IsEditing ? "argumentExpressionEditableTemplate" : "argumentExpressionReadOnlyTemplate"; break; case PropertyKind.OutArgument: case PropertyKind.InOutArgument: key = "argumentOutputValueTemplate"; break; } resolveParams.Template = (DataTemplate)this.FindResource(key); resolveParams.IsDefaultTemplate = true; } return true; }
bool OnResolveDynamicContentTemplate(ResolveTemplateParams resolveParams) { var variable = (DesignObjectWrapper)resolveParams.Cell.DataContext; //get editor associated with variable's value var editorType = variable.GetDynamicPropertyValueEditorType(DesignTimeVariable.VariableDefaultProperty); //if yes there is a custom one - use it if (!typeof(ExpressionValueEditor).IsAssignableFrom(editorType)) { //get inline editor template - it will be used for both templates - view and editing; resolveParams.Template = variable.GetDynamicPropertyValueEditor(DesignTimeVariable.VariableDefaultProperty).InlineEditorTemplate; resolveParams.IsDefaultTemplate = false; } else { //no custom editor - depending on grid state display either editable or readonly expression template string key = resolveParams.Cell.IsEditing ? "variableExpressionEditableTemplate" : "variableExpressionReadonlyTemplate"; resolveParams.Template = (DataTemplate)this.FindResource(key); resolveParams.IsDefaultTemplate = true; } return true; }