示例#1
0
        public bool CastDataContextBindingSource(
            CastDataContextBindingSourceNode castSourceBinding,
            Parameters parameters,
            Context context)
        {
            var sourceType    = castSourceBinding.CastType;
            var bindingSource = context.BindingSourceProvider.AddDataContext(sourceType);
            var newContext    = new Context(new StringBuilder(), bindingSource, context);

            if (this.VisitChildBindings(castSourceBinding.Bindings, parameters, newContext))
            {
                context.ExternAliases.TryAdd(sourceType);
                context.BindingContainerSourceCodeBuilder.AppendLine($"            var {bindingSource.Name} = this.GetDataContext(view => ({sourceType.ToAliasQualifiedType()})view.DataContext);");
                context.BindingContainerSourceCodeBuilder.Append(newContext.BindingContainerSourceCodeBuilder);
                return(true);
            }

            return(false);
        }
 public void CastDataContextSourceBinding(CastDataContextBindingSourceNode castSourceBinding,
                                          StringBuilder stringBuilder,
                                          int indent)
 {
     PrivateVisit(stringBuilder, indent, castSourceBinding, castSourceBinding.Bindings);
 }
 public bool CastDataContextBindingSource(CastDataContextBindingSourceNode castSourceBinding, Parameters parameters, Context context)
 {
     return(this.VisitChildBindings(castSourceBinding.Bindings, parameters, context));
 }