usingcAlgo.API;namespacecAlgo.Robots{[Robot(AccessRights = AccessRights.None, AddIndicators = true)]publicclassMultiSelectTest:Robot{privateMultiSelect_multiSelect;[Parameter(DefaultValue = false)]publicboolStyled{get;set;}protectedoverridevoidOnStart(){_multiSelect=newMultiSelect();if(Styled){_multiSelect.BackgroundColor=Color.Red;_multiSelect.FontWeight=FontWeight.UltraBold;_multiSelect.ForegroundColor=Color.Yellow;_multiSelect.FontSize=40;_multiSelect.FontFamily="Comic Sans MS";}for(vari=0;i<10;i++){_multiSelect.AddItem($"Item {i}");}_multiSelect.SelectedItemsChanged+=args=>Print($"OnSelectedItemsChanged: {string.Join(",", _multiSelect.SelectedItems)}");varaddItemTextBox=newTextBox();varaddItemButton=newButton(){Text="Add Item"};addItemButton.Click+=args=>{if(string.IsNullOrWhiteSpace(addItemTextBox.Text))return;Print($"Add Result of {addItemTextBox.Text}: {_multiSelect.AddItem(addItemTextBox.Text)}");};varremoveItemTextBox=newTextBox();varremoveItemButton=newButton(){Text="Remove Item"};removeItemButton.Click+=args=>{if(string.IsNullOrWhiteSpace(removeItemTextBox.Text))return;Print($"Remove Result of {removeItemTextBox.Text}: {_multiSelect.RemoveItem(removeItemTextBox.Text)}");};varselectItemTextBox=newTextBox();varselectItemButton=newButton(){Text="Select Item"};selectItemButton.Click+=args=>{if(string.IsNullOrWhiteSpace(selectItemTextBox.Text))return;Print($"Select Result of {selectItemTextBox.Text}: {_multiSelect.SelectItem(selectItemTextBox.Text)}");};varunselectItemTextBox=newTextBox();varunselectItemButton=newButton(){Text="Unselect Item"};unselectItemButton.Click+=args=>{if(string.IsNullOrWhiteSpace(unselectItemTextBox.Text))return;Print($"Unselect Result of {unselectItemTextBox.Text}: {_multiSelect.UnselectItem(unselectItemTextBox.Text)}");};varselectAllItemsButton=newButton(){Text="Select All Items"};selectAllItemsButton.Click+=args=>{_multiSelect.SelectAllItems();};varunselectAllItemsButton=newButton(){Text="Unselect All Items"};unselectAllItemsButton.Click+=args=>{_multiSelect.UnselectAllItems();};varshowItemsButton=newButton(){Text="Show Items"};showItemsButton.Click+=args=>Print($"Items: {string.Join(",", _multiSelect.Items)}");varshowSelectedItemsButton=newButton(){Text="Show Selected Items"};showSelectedItemsButton.Click+=args=>Print($"Selected Items: {string.Join(",", _multiSelect.SelectedItems)}");varpanel=newStackPanel(){Orientation=Orientation.Vertical,HorizontalAlignment=HorizontalAlignment.Center,VerticalAlignment=VerticalAlignment.Center};panel.AddChild(_multiSelect);panel.AddChild(addItemTextBox);panel.AddChild(addItemButton);panel.AddChild(removeItemTextBox);panel.AddChild(removeItemButton);panel.AddChild(selectItemTextBox);panel.AddChild(selectItemButton);panel.AddChild(unselectItemTextBox);panel.AddChild(unselectItemButton);panel.AddChild(selectAllItemsButton);panel.AddChild(unselectAllItemsButton);panel.AddChild(showItemsButton);panel.AddChild(showSelectedItemsButton);Chart.AddControl(panel);}}}
importclrclr.AddReference("cAlgo.API")# Import cAlgo API typesfromcAlgo.APIimport*# Import trading wrapper functionsfromrobot_wrapperimport*classTest():defon_add_item_button_clicked(self,args):ifself.addItemTextBox.TextisNone:returnprint(f"Add Result of {self.addItemTextBox.Text}: {self.multiSelect.AddItem(self.addItemTextBox.Text)}")defon_remove_item_button_clicked(self,args):ifself.removeItemTextBox.TextisNone:returnprint(f"Remove Result of {self.removeItemTextBox.Text}: {self.multiSelect.RemoveItem(self.removeItemTextBox.Text)}")defon_select_item_button_clicked(self,args):ifself.selectItemTextBox.TextisNone:returnprint(f"Select Result of {self.selectItemTextBox.Text}: {self.multiSelect.SelectItem(self.selectItemTextBox.Text)}")defon_unselect_item_button_clicked(self,args):ifself.unselectItemTextBox.TextisNone:returnprint(f"Unselect Result of {self.unselectItemTextBox.Text}: {self.multiSelect.UnselectItem(self.unselectItemTextBox.Text)}")defon_start(self):self.multiSelect=MultiSelect()# Styled is a boolean parameter defined in C# file of cBotifapi.Styled:self.multiSelect.BackgroundColor=Color.Redself.multiSelect.FontWeight=FontWeight.UltraBoldself.multiSelect.ForegroundColor=Color.Yellowself.multiSelect.FontSize=40self.multiSelect.FontFamily="Comic Sans MS"foriinrange(10):self.multiSelect.AddItem(f"Item {i}")self.multiSelect.SelectedItemsChanged+=lambdaargs:print(f"OnSelectedItemsChanged: {", ".join(self.multiSelect.SelectedItems)}")self.addItemTextBox=TextBox()addItemButton=Button()addItemButton.Text="Add Item"addItemButton.Click+=self.on_add_item_button_clickedself.removeItemTextBox=TextBox()removeItemButton=Button()removeItemButton.Text="Remove Item"removeItemButton.Click+=self.on_remove_item_button_clickedself.selectItemTextBox=TextBox()selectItemButton=Button()selectItemButton.Text="Select Item"selectItemButton.Click+=self.on_select_item_button_clickedself.unselectItemTextBox=TextBox()unselectItemButton=Button()unselectItemButton.Text="Unselect Item"unselectItemButton.Click+=self.on_unselect_item_button_clickedselectAllItemsButton=Button()selectAllItemsButton.Text="Select All Items"selectAllItemsButton.Click+=lambda_:self.multiSelect.SelectAllItems()unselectAllItemsButton=Button()unselectAllItemsButton.Text="Unselect All Items"unselectAllItemsButton.Click+=lambda_:self.multiSelect.UnselectAllItems()showItemsButton=Button()showItemsButton.Text="Show Items"showItemsButton.Click+=lambda_:print(f"Items: {", ".join(self.multiSelect.Items)}")showSelectedItemsButton=Button()showSelectedItemsButton.Text="Show Selected Items"showSelectedItemsButton.Click+=lambda_:print(f"Selected Items: {", ".join(self.multiSelect.SelectedItems)}")panel=StackPanel()panel.Orientation=Orientation.Verticalpanel.HorizontalAlignment=HorizontalAlignment.Centerpanel.VerticalAlignment=VerticalAlignment.Centerpanel.AddChild(self.multiSelect)panel.AddChild(self.addItemTextBox)panel.AddChild(addItemButton)panel.AddChild(self.removeItemTextBox)panel.AddChild(removeItemButton)panel.AddChild(self.selectItemTextBox)panel.AddChild(selectItemButton)panel.AddChild(self.unselectItemTextBox)panel.AddChild(unselectItemButton)panel.AddChild(selectAllItemsButton)panel.AddChild(unselectAllItemsButton)panel.AddChild(showItemsButton)panel.AddChild(showSelectedItemsButton)api.Chart.AddControl(panel)
Methods
SelectItem
Summary
Selects item on the MultiSelect
Signature
1
publicboolSelectItem(stringitem)
Parameters
Name
Type
Description
item
string
The item that will be selected on MultiSelect
Return Value
bool
UnselectItem
Summary
Unselects item on the MultiSelect
Signature
1
publicboolUnselectItem(stringitem)
Parameters
Name
Type
Description
item
string
The item that will be unselected on MultiSelect
Return Value
bool
SelectItems
Summary
Selects items on the MultiSelect
Signature
1
publicvoidSelectItems(IEnumerable<string>items)
Parameters
Name
Type
Description
items
IEnumerable
The items that will be selected on MultiSelect
Return Value
void
UnselectItems
Summary
Unselects items on the MultiSelect
Signature
1
publicvoidUnselectItems(IEnumerable<string>items)
Parameters
Name
Type
Description
items
IEnumerable
The items that will be unselected on MultiSelect
Return Value
void
SelectAllItems
Summary
Selects all items on the MultiSelect
Signature
1
publicvoidSelectAllItems()
Return Value
void
UnselectAllItems
Summary
Unselects all items on the MultiSelect
Signature
1
publicvoidUnselectAllItems()
Return Value
void
AddItem
Summary
Adds a new item to the MultiSelect
Signature
1
publicboolAddItem(stringitem)
Parameters
Name
Type
Description
item
string
The string value that will be added on MultiSelect
Return Value
bool
RemoveItem
Summary
Removes an existing item from the MultiSelect
Signature
1
publicboolRemoveItem(stringitem)
Parameters
Name
Type
Description
item
string
The string value that will be removed from MultiSelect
Return Value
bool
Properties
Items
Summary
Get the read-only copy of MultiSelect items
Signature
1
publicIReadonlyList<string>Items{get;}
Return Value
IReadonlyList
SelectedItems
Summary
Get the read-only copy of MultiSelect selected items
Signature
1
publicIReadonlyList<string>SelectedItems{get;}
Return Value
IReadonlyList
Events
SelectedItemsChanged
Summary
This event will trigger if the MultiSelect selected items changed