/**
  * Create and setup QListBox lstAttributeOptionsAsMultiple
  * @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 lstAttributeOptionsAsMultiple_Create($strControlId = null, QQCondition $objCondition = null, $objOptionalClauses = null)
 {
     $this->lstAttributeOptionsAsMultiple = new QListBox($this->objParentObject, $strControlId);
     $this->lstAttributeOptionsAsMultiple->Name = QApplication::Translate('Attribute Options As Multiple');
     $this->lstAttributeOptionsAsMultiple->SelectionMode = QSelectionMode::Multiple;
     // We need to know which items to "Pre-Select"
     $objAssociatedArray = $this->objAttributeValue->GetAttributeOptionAsMultipleArray();
     // Setup and perform the Query
     if (is_null($objCondition)) {
         $objCondition = QQ::All();
     }
     $objAttributeOptionCursor = AttributeOption::QueryCursor($objCondition, $objOptionalClauses);
     // Iterate through the Cursor
     while ($objAttributeOption = AttributeOption::InstantiateCursor($objAttributeOptionCursor)) {
         $objListItem = new QListItem($objAttributeOption->__toString(), $objAttributeOption->Id);
         foreach ($objAssociatedArray as $objAssociated) {
             if ($objAssociated->Id == $objAttributeOption->Id) {
                 $objListItem->Selected = true;
             }
         }
         $this->lstAttributeOptionsAsMultiple->AddItem($objListItem);
     }
     // Return the QListControl
     return $this->lstAttributeOptionsAsMultiple;
 }