Skip to content

WF-875216 : Prepare UG document for the events fired when selecting/unselecting Tokens in SfComboBox control #1122

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: development
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 130 additions & 0 deletions WindowsForms/ComboBox/Token.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,133 @@ sfComboBox1.Style.TokenStyle.Font = New Font(“Arial”, 10F, FontStyle.Bold)
* Using the <kbd>Down Arrow</kbd>, <kbd>Up Arrow</kbd>, and <kbd>Enter</kbd> keys, item can be selected from the combobox.
* Using the <kbd>Backspace</kbd> key, the last positioned token will be removed from the text area.
* When the <kbd>Esc</kbd> key is pressed, the drop-down area will be closed if it has been opened already.

## Events Fired When Selecting and Deselecting Tokens

The events [SelectedValueChanged](https://help.syncfusion.com/cr/windowsforms/Syncfusion.WinForms.ListView.SfComboBox.html#Syncfusion_WinForms_ListView_SfComboBox_SelectedValueChanged) and [SelectedIndexChanged](https://help.syncfusion.com/cr/windowsforms/Syncfusion.WinForms.ListView.SfComboBox.html#Syncfusion_WinForms_ListView_SfComboBox_SelectedIndexChanged) are triggered when tokens are selected or deselected in the SfComboBox control.

{% tabs %}
{% highlight c# %}

private List<object> _previousSelectedTokens;
SfComboBox sfComboBox1 = new SfComboBox
{
EnableToken = true,
DisplayMember = "Name",
ValueMember = "Id",
};
// Set the DataSource
sfComboBox1.DataSource = new List<dynamic>
{
new { Id = 1, Name = "Item1" },
new { Id = 2, Name = "Item2" },
new { Id = 3, Name = "Item3" }
};
sfComboBox1.SelectedItems.Add(sfComboBox1.DropDownListView.View.DisplayItems[0]);
_previousSelectedTokens = sfComboBox1.SelectedItems.Cast<object>().ToList();
sfComboBox1.SelectedValueChanged += SfComboBox1_SelectedValueChanged;
sfComboBox1.SelectedIndexChanged += SfComboBox1_SelectedIndexChanged;
this.Controls.Add(sfComboBox1);

private void TokenComboBox_SelectedValueChanged(object sender, EventArgs e)
{
var comboBox = sender as SfComboBox;

// Get the current selected tokens
var currentSelectedTokens = comboBox.SelectedItems.Cast<dynamic>().ToList();

// Determine added tokens
var addedTokens = currentSelectedTokens.Except(_previousSelectedTokens).ToList();

// Determine removed tokens
var removedTokens = _previousSelectedTokens.Except(currentSelectedTokens).ToList();

// Update the previous token list
_previousSelectedTokens = currentSelectedTokens;

// Handle added tokens
foreach (var token in addedTokens)
{
MessageBox.Show($"Token Added: {token.Name}", "Token Added");
// Additional logic for added tokens
}
// Handle removed tokens
foreach (var token in removedTokens)
{
MessageBox.Show($"Token Removed: {token.Name}", "Token Removed");
// Additional logic for removed tokens
}
}

private void TokenComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
// Handle the event when the selection changes (tokens are selected or deselected)
}

{% endhighlight %}
{% highlight vb %}

Private _previousSelectedTokens As List(Of Object)

' Initialize the SfComboBox
Dim sfComboBox1 As New SfComboBox() With {
.EnableToken = True,
.DisplayMember = "Name",
.ValueMember = "Id"
}

' Set the DataSource
sfComboBox1.DataSource = New List(Of Object) From {
New With {.Id = 1, .Name = "Item1"},
New With {.Id = 2, .Name = "Item2"},
New With {.Id = 3, .Name = "Item3"}
}

' Add initial tokens
sfComboBox1.SelectedItems.Add(sfComboBox1.DropDownListView.View.DisplayItems(0))
_previousSelectedTokens = sfComboBox1.SelectedItems.Cast(Of Object).ToList()

' Subscribe to events
AddHandler sfComboBox1.SelectedValueChanged, AddressOf TokenComboBox_SelectedValueChanged
AddHandler sfComboBox1.SelectedIndexChanged, AddressOf TokenComboBox_SelectedIndexChanged

' Add SfComboBox to the form
Me.Controls.Add(sfComboBox1)

Private Sub TokenComboBox_SelectedValueChanged(sender As Object, e As EventArgs)
Dim comboBox = TryCast(sender, SfComboBox)

' Get the current selected tokens
Dim currentSelectedTokens = comboBox.SelectedItems.Cast(Of Object).ToList()

' Determine added tokens
Dim addedTokens = currentSelectedTokens.Except(_previousSelectedTokens).ToList()

' Determine removed tokens
Dim removedTokens = _previousSelectedTokens.Except(currentSelectedTokens).ToList()

' Update the previous token list
_previousSelectedTokens = currentSelectedTokens

' Handle added tokens
For Each token In addedTokens
MessageBox.Show($"Token Added: {token.Name}", "Token Added")
' Additional logic for added tokens
Next

' Handle removed tokens
For Each token In removedTokens
MessageBox.Show($"Token Removed: {token.Name}", "Token Removed")
' Additional logic for removed tokens
Next
End Sub

Private Sub TokenComboBox_SelectedIndexChanged(sender As Object, e As EventArgs)
' Handle the event when the selection changes (tokens are selected or deselected)
End Sub


{% endhighlight %}
{% endtabs %}

![Event fired when Selecting/Unselecting token item](Token_images/Token_Event.gif)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.