מדריך WPF – פקדים בסיסיים: ComboBox
הפקד ComboBox מאפשר למשתמש לבחור ערך יחיד מתוך רשימה נפתחת של ערכים. העבודה עם פקד ComboBox נעשית בצורה דומה מאוד לעבודה עם פקד ListBox.
יצירת ComboBox עם מספר ערכים
באופן דומה לפקד ListBox, התכונה החשובה בפקד ComboBox היא התכונה Items שאליה ניתן להכניס מספר אלמנטים מטיפוס ComboBoxItem, כאשר כל אלמנט כזה מייצג אלמנט ברשימה הנפתחת.
יצירת רשימה נפתחת עם מספר ערכים קבועים יכולה להתבצע באמצעות קוד הXAML הבא:
<Window x:Class="ControlsDemo.MainWindow"
>="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
>:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="350"
Width="525">
<StackPanel>
<ComboBox>
<ComboBoxItem Content="Item 1" />
<ComboBoxItem Content="Item 2" />
<ComboBoxItem Content="Item 3" />
</ComboBox>
</StackPanel>
</Window>
והתוצאה
הוספת אלמנטים ל ComboBox באמצעות קוד #C
באופן דומה לפקד ListBox, ניתן לטעון ערכים בצורה דינמית לתוך ComboBox ע"י שימוש בקוד #C. כדי לגשת לפקד ה ComboBox מקוד ראשית יש לתת לו שם ע"י שימוש בx:Name, לאחר מכן נוסיף אלמנטים מסוג ComboBoxItem לתכונה Items של ה ComboBox.
להלן קוד XAML וקוד #C שעושים זאת:
<Window x:Class="ControlsDemo.MainWindow"
>="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
>:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="350"
Width="525">
<StackPanel>
<ComboBox x:Name="comboBox" />
</StackPanel>
</Window>
והקוד בשפת #C:
using System.Windows;
using System.Windows.Controls;
namespace ControlsDemo
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
for (int i = 0; i < 5; ++i)
{
ComboBoxItem newItem = new ComboBoxItem();
newItem.Content = "Item " + i;
comboBox.Items.Add(newItem);
}
}
}
}
תוצאת הרצת הקוד הנ"ל
האירוע SelectionChanged
האירוע SelectionChanged מופעל כאשר ישנו שינוי באלמנט שנבחר ברשימה. ניתן להשיג את האלמנט הנבחר החדש ע"י התכונה SelectedItem.
הקוד הבא מופעל כאשר הבחירה משתנה ומדפיס את האיבר החדש שנבחר:
קוד הXAML:
<Window x:Class="ControlsDemo.MainWindow"
>="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
>:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="350"
Width="525">
<StackPanel>
<ComboBox x:Name="comboBox"
SelectionChanged="comboBox_SelectionChanged" />
</StackPanel>
</Window>
קוד #C:
private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
MessageBox.Show(comboBox.SelectedItem);
}
תגובות בפייסבוק