/**
  * Create and setup QListBox lstAttributeValuesAsMultiple
  * @param string $strControlId optional ControlId to use
  * @param QQCondition $objConditions override the default condition of QQ::All() to the query, itself
  * @param QQClause[] $objOptionalClauses additional optional QQClause object or array of QQClause objects for the query
  * @return QListBox
  */
 public function lstAttributeValuesAsMultiple_Create($strControlId = null, QQCondition $objCondition = null, $objOptionalClauses = null)
 {
     $this->lstAttributeValuesAsMultiple = new QListBox($this->objParentObject, $strControlId);
     $this->lstAttributeValuesAsMultiple->Name = QApplication::Translate('Attribute Values As Multiple');
     $this->lstAttributeValuesAsMultiple->SelectionMode = QSelectionMode::Multiple;
     // We need to know which items to "Pre-Select"
     $objAssociatedArray = $this->objAttributeOption->GetAttributeValueAsMultipleArray();
     // Setup and perform the Query
     if (is_null($objCondition)) {
         $objCondition = QQ::All();
     }
     $objAttributeValueCursor = AttributeValue::QueryCursor($objCondition, $objOptionalClauses);
     // Iterate through the Cursor
     while ($objAttributeValue = AttributeValue::InstantiateCursor($objAttributeValueCursor)) {
         $objListItem = new QListItem($objAttributeValue->__toString(), $objAttributeValue->Id);
         foreach ($objAssociatedArray as $objAssociated) {
             if ($objAssociated->Id == $objAttributeValue->Id) {
                 $objListItem->Selected = true;
             }
         }
         $this->lstAttributeValuesAsMultiple->AddItem($objListItem);
     }
     // Return the QListControl
     return $this->lstAttributeValuesAsMultiple;
 }