function ContainerBuilder() {
    _.superClass(ContainerBuilder, this);
}

_.inherit(ContainerBuilder, ElementBuilder);

/**
 * @abstract
 */
_.extend(ContainerBuilder.prototype, {

    applyMetadata: function (params) {
        var metadata = params.metadata;
        var element = params.element;

        ElementBuilder.prototype.applyMetadata.call(this, params);

    },

    buildItemProperty: function(itemPropertyMetadata, itemsDataSourceName, params){
        var templateMetadata = {
            Label: {
                Value: {
                    PropertyBinding:{
                        Source: itemsDataSourceName,
                        Property: itemPropertyMetadata
                    }
                }
            }
        };

        return this.buildItemTemplate(templateMetadata, params);
    },

    buildItemFormat: function(itemPropertyMetadata, itemsDataSourceName, itemFormatMetadata, params){
        var templateMetadata = {
            Label: {
                Value: {
                    PropertyBinding:{
                        Source: itemsDataSourceName,
                        Property: itemPropertyMetadata
                    }
                },

                DisplayFormat: itemFormatMetadata
            }
        };

        return this.buildItemTemplate(templateMetadata, params);
    },

    buildItemTemplate: function (templateMetadata, params) {
        var element = params.element;
        var builder = params.builder;
        var basePathOfProperty = params.basePathOfProperty || new BasePathOfProperty('');

        return function(context, args) {
            var index = args.index;
            var argumentForBuilder = {
                parentView: params.parentView
            };

            if(index !== undefined && index !== null){
                argumentForBuilder.basePathOfProperty = basePathOfProperty.buildChild('', index);
            }

            return builder.build(templateMetadata, argumentForBuilder);
        };
    },

    /**
     * @public
     * @memberOf ContainerBuilder
     * @description Возвращает функцию itemTemplate для не шаблонизируемого item'а.
     * @param {Object} itemMetadata метаданные.
     * @param {Object} params стандартные params, передаваемые внутри билдеров.
     **/
    buildItemTemplateForUniqueItem: function (itemsMetadata, params) {
        var element = params.element;
        var builder = params.builder;
        var basePathOfProperty = params.basePathOfProperty || new BasePathOfProperty('');

        return function(context, args) {
            var index = args.index;
            var argumentForBuilder = {
                parentView: params.parentView,
                basePathOfProperty: basePathOfProperty
            };

            return builder.build(itemsMetadata[index], argumentForBuilder);
        };
    }
});


@@ -393,32 +393,46 @@
 perty: function(
+itemsBinding, 
 itemPropertyMeta
@@ -441,38 +441,62 @@
 ta, 
-itemsDataSourceName
+params)%7B%0A%0A        return function(context
 , 
-p
 ar
-am
+g
 s)%7B%0A
+    
     
@@ -507,341 +507,883 @@
 var 
-templateMetadata = %7B%0A            Label: %7B%0A                Value: %7B%0A                    PropertyBinding:%7B%0A                        Source: itemsDataSourceName,%0A                        Property: itemPropertyMetadata%0A                    %7D%0A                %7D%0A     
+index = args.index;%0A            var label = new Label(this);%0A            var sourceProperty = itemsBinding.getSourceProperty() + '.' + index + '.' + itemPropertyMetadata;%0A            var source = itemsBinding.getSource();%0A            var binding = new DataBinding(this);%0A%0A            binding.bindSource(source, sourceProperty);%0A            binding.bindElement(label, 'value');%0A%0A            return label;%0A        %7D;%0A    %7D,%0A%0A    buildItemFormat: function(itemsBinding, itemFormatMetadata, params)%7B%0A%0A        return function(context, args)%7B%0A            var index = args.index;%0A            var label = new Label(this);%0A
        
-%7D%0A
      
-   %7D;%0A%0A        return this.buildItemTemplate(templ
+var format = new ObjectFormat();%0A%0A            var sourceProperty = itemsBinding.getSourceProperty();%0A            var source = itemsBinding.getSource();%0A            var binding = new DataBinding(this);%0A%0A            format.setFormat(itemForm
 at
-e
 Metadata
 , pa
@@ -1382,98 +1382,252 @@
 data
-, params
+);%0A            label.setDisplayFormat(format
 );%0A
+%0A
     
-%7D,%0A%0A
+    
     b
-uildItemFormat: function(itemPropertyMetadata, itemsDataSourceName
+inding.bindSource(source, sourceProperty);%0A            binding.bindElement(label, 'value');%0A%0A            return label;%0A        %7D;%0A%0A    %7D,%0A%0A    buildItemSelector: function(itemsBinding
 , it
@@ -1653,24 +1653,25 @@
 arams)%7B%0A
+%0A
         
 var temp
@@ -1666,169 +1666,273 @@
     
-var templateMetadata = %7B%0A            Label: %7B%0A                Value: %7B%0A                    PropertyBinding:%7B%0A                        S
+return function (context, args) %7B%0A            var label = new Label(this);%0A            var scriptExecutor = new ScriptExecutor(params.parentView);%0A%0A            var sourceProperty = itemsBinding.getSourceProperty();%0A            var s
 ource
-:
+ =
  items
-Data
+Binding.get
 Source
-Name,
+();
 %0A   
@@ -1944,71 +1944,89 @@
     
-            Property: itemPropertyMetadata%0A            
+var binding = new DataBinding(this);%0A%0A            binding.setConverter(%7B%0A
         
 %7D%0A  
@@ -2021,26 +2021,24 @@
         
-%7D%0A
         
         
@@ -2033,70 +2033,142 @@
     
-        %7D,%0A%0A                DisplayFormat: itemFormatMetadata%0A
+toElement: function(_context, _args)%7B%0A                    return scriptExecutor.executeScript(metadata.ItemSelector.Name, _args);%0A    
     
@@ -2177,33 +2177,38 @@
       %7D%0A        
-%7D
+    %7D)
 ;%0A%0A        retur
@@ -2206,64 +2206,141 @@
     
+ 
-return this.buildItemTemplate(templateMetadata, params);
+   binding.bindSource(source, sourceProperty);%0A            binding.bindElement(label, 'value');%0A%0A            return label;%0A        %7D
 %0A   

change working with itemSelector, itemProperty, itemFormat. Is binded now (not static)