Exemple #1
0
    /// <summary>
    /// 对元素进行数据绑定
    /// </summary>
    /// <param name="element">要进行数据绑定的元素</param>
    protected virtual void DataBind( IHtmlElement element, BindingContext context )
    {
      var bindings = FindBindings( element ).OrderBy( b => b.Priority );

      context.Enter( element );
      bindings.ForAll( b => b.DataBind( context ) );
      element.Elements().ForAll( e => DataBind( e, context ) );
      context.Exit( element );
    }
Exemple #2
0
    /// <summary>
    /// 对文档进行数据绑定
    /// </summary>
    /// <param name="document">要进行数据绑定的文档</param>
    protected virtual void DataBind( IHtmlDocument document, object dataContext )
    {
      var bindings = FindBindings( document ).OrderBy( b => b.Priority );

      var context = new BindingContext( this, dataContext );
      bindings.ForAll( b => b.DataBind( context ) );

      document.Elements().ForAll( e => DataBind( e, context ) );
    }
Exemple #3
0
    public void DataBind( BindingContext context )
    {

      object dataObject = null;

      var dataContext = context.DataContext;


      if ( dataContext != null )
      {
        string path;

        if ( _arguments.TryGetValue( "path", out path ) )
          dataObject = Eval( dataContext, path );

        else
          dataObject = dataContext;
      }


      string converterName;
      if ( !_arguments.TryGetValue( "converter", out converterName ) )
        converterName = null;

      string binderName;
      if ( _arguments.TryGetValue( "binder", out binderName ) )
      {
        var valueBinder = context.BindingManager.GetValueBinder( BindingHost, binderName );

        if ( valueBinder != null )
        {

          var value = context.BindingManager.ConvertValue( dataObject, valueBinder.ValueType, converterName );

          valueBinder.BindValue( BindingHost, value );
          return;
        }
      }



      {
        var target = context.BindingManager.GetTarget( BindingHost );

        var value = context.BindingManager.ConvertValue( dataContext, target.ValueType, converterName );
        target.BindValue( value );
      }

    }
Exemple #4
0
    protected virtual object ConvertValue( BindingContext context, object dataObject, Type targetType )
    {
      var converter = context.BindingManager.GetConverter( _arguments["converter"], targetType );

      if ( converter != null )
        return converter.Convert( dataObject );

      return dataObject;

    }