Working with Events in the Silverlight ComboBox Control


Introduction:

In the previous article, we explored the ComboBox control in Silverlight 2.0. We learnt how to create the control and set its various properties. In this article, we will take the concept further and discover how to work with events.

Open the Page.xaml file created in the previous article in split view showing Design View as well as the XAML code. Using Intellisense, add the event DropDownOpened. This event fires when you open the combo box by clicking the dropdown arrow on the control. After the = symbol, Intellisense prompts you to add a new event handler. If you just click on it, an event handler with arguments and empty body is automatically generated in the Page.xaml.cs file. For example, the DropDownOpened event will cause the following to be added to the source code.

private void ComboBox_DropDownOpened(object sender, EventArgs e)
 {
    
 }


Let's now add some code to the event handler.

private void ComboBox_DropDownOpened(object sender, EventArgs e)
{
   cboColors.Foreground = new SolidColorBrush(Colors.Purple);
}


This will cause the foreground to become purple every time the dropdown box is expanded.

Likewise, you can add the DropDownClosed event and generate an event handler for it.

A small part of Page.xaml is shown here:

<ComboBox Name="cboColors" Background="Sienna"
                  Height="30" Width="100"
                  DropDownOpened="ComboBox_DropDownOpened"
                  DropDownClosed="ComboBox_DropDownClosed"
> 

The code in Page.xaml.cs is:

private void ComboBox_DropDownOpened(object sender, EventArgs e)
{
    cboColors.Foreground = new SolidColorBrush(Colors.Purple);
}

private void ComboBox_DropDownClosed(object sender, EventArgs e)
{
    cboColors.Background = new SolidColorBrush(Colors.Green); 
 }

Note that to change the background there is no direct way. A SolidBrush object of the desired color is created and then the same is used for the ComboBox.

Finally, generate one more event, the SelectionChanged, and add code to it as shown.

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    cboColors.Foreground = new SolidColorBrush(Colors.Red);
}


Conclusion: Thus, you learnt how to work with the ComboBox control in Silverlight.


Similar Articles