you can show hide ui component grid column by this way in ui component.
Add a custom class in your column
<column name="step1_formula" class="vendor\module\Ui\Component\Listing\Column\FormulaGridActions">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true"> Step1 Formula </item>
<item name="editor" xsi:type="array">
<item name="editorType" xsi:type="string">text</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</item>
</argument>
</column>
Paste the following code here
vendor\module\Ui\Component\Listing\Column\FormulaGridActions
<?php
namespace vendor\Module\Ui\Component\Listing\Column;
use Magento\Framework\Exception\LocalizedException;
use Magento\Ui\Component\Listing\Columns\Column;
class FormulaGridActions extends Column
{
public function __construct(
\Magento\Framework\View\Element\UiComponent\ContextInterface $context,
\Magento\Framework\View\Element\UiComponentFactory $uiComponentFactory,
array $components = [],
array $data = []
){
parent::__construct($context, $uiComponentFactory, $components, $data);
}
public function prepareDataSource(array $dataSource) {
if (isset($dataSource['data']['items'])) {
foreach ($dataSource['data']['items'] as & $item) {
if($item['result_steps'] == 0)
{
$item['step2_formula'] = "";
// $item['step1_formula'] = $item['result_color_grams'].''.;
}
}
}
return $dataSource;
}
*/
public function prepare()
{
if ($condition) { // Your condition goes here
$status = true;
}
$this->_data['config']['componentDisabled'] = true; // for removing the column
parent::prepare();
}
}