Silverlight. Элементы управления
Элементы работы с данными
ListBox
Элемент управления ListBox (Рис. 22.14) используется для представления содержимого в виде упорядоченного списка. Это достаточно гибкий элемент управления, так что элементы списка могут создаваться из содержимого любого типа.
| Свойство | Тип | Описание |
|---|---|---|
| ItemContainerStyle | Style | Возвращает или задает стиль, применяемый к элементу контейнера, сгенерированному для каждого элемента. |
| SelectedIndex | Int32 | Возвращает или задает индекс первого элемента в текущем выбранном элементе или минус единицу (-1), если элемент не выбран. |
| SelectedItem | Object | Возвращает или задает первый элемент или возвращает значение NULL, если элемент не выбран. |
| SelectedValue | Object | Возвращает или задает значение SelectedItem, получаемое с помощью SelectedValuePath. |
| SelectionMode | SelectionMode | Возвращает или задает поведение выбора для списка ListBox. (Принимает значения: Single если нужно выбрать один элемент, Multiple если пользователь выбирает несколько элементов из списка, Extended если пользователь выбирает несколько элементов из списка используя специальные клавиши, таки как Ctrl или Shift. |
XAML код элемента ListBox представленного на Рис. 22.14:
<TextBlock FontWeight="Bold"> ListBox with Simple items (TextBlock) </TextBlock> <ListBox Canvas.Top="50" Canvas.Left="40" Width="200"> <ListBox.Items> <ListBoxItem> <TextBlock Text="Strategic Advisory"/> </ListBoxItem> <ListBoxItem> <TextBlock Text="Training"/> </ListBoxItem> <ListBoxItem> <TextBlock Text="Development"/> </ListBoxItem> <ListBoxItem> <TextBlock Text="Technical Publishing"/> </ListBoxItem> </ListBox. Items> </ListBox>
ComboBox
Элемент управления ComboBox (Поле со списком) используется для представления списка доступных для выбора элементов. При этом отображается только выбранный элемент, но имеется выпадающее меню с полным списком доступных для выбора элементов.
| Свойство | Тип | Описание |
|---|---|---|
| IsEditable | bool | Возвращает или задает значение, разрешающее либо запрещающее редактировать текст в текстовом поле элемента управления ComboBox. |
| ItemContainerStyle | Style | Возвращает или задает стиль, который применяется к контейнеру, создаваемому для каждого элемента поля со списком. |
| SelectedIndex | Int32 | Возвращает или задает индекс, выбранного элемента. |
| SelectedItem | Object | Возвращает или задает первый выбранный элемент. |
| SelectedValue | Object | Возвращает или задает значение выбранного элемента, используя свойство SelectedValuePath (Новое свойство в Silverlight 4). |
XAML код элемента ComboBox представленного на Рис. 22.15:
<TextBlock FontWeight="Bold"> ComboBox with Simple items (TextBlock) </TextBlock> <ComboBox> <ComboBox.Items> <ComboBoxItem> <TextBlock Text="Strategic Advisory"/> </ComboBoxItem> <ComboBoxItem> <TextBlock Text="Training"/> </ComboBoxItem> <ComboBoxItem> <TextBlock Text="Development"/> </ComboBoxItem> <ComboBoxItem> <TextBlock Text="Technical Publishing"/> </ComboBoxItem> </ComboBox>
DataGrid
Элемент управления DataGrid разработан для облегчения задачи по отображению данных в формате таблицы. Это сетка данных, связанная с источником данных. Для работы с данным элементом необходимо подключить пространство имен System.Windows.Data и добавить в XAML код строчку:
xmlns:data="clrnamespace: System.Windows.Controls;assembly=System.Windows.Controls.Data"
XAML код элемента DataGrid представленного на Рис. 22.16:
<UserControl x:Class="chapter6.PagedCollectionViewDemo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/
markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400"
xmlns:data="clr-namespace:System.Windows.Controls;
assembly=System.Windows.Controls.Data">
<Grid x:Name="LayoutRoot" Background="White"
Width="400" Height="300">
<data:DataGrid x:Name="myDataGrid" AutoGenerateColumns="False" >
<data:DataGrid.Columns>
<data:DataGridTextColumn Binding="{Binding Name}"
Header="Name" />
<data:DataGridTextColumn Binding="{Binding Email}"
Header="Email" />
<data:DataGridTextColumn Binding="{Binding City}"
Header="City" />
<data:DataGridTextColumn Binding="{Binding Pincode}"
Header="Pin Code" />
</data:DataGrid.Columns>
</data:DataGrid>
</Grid>
</UserControl>Класс Employee:
public class Employee
{
public string Name { get; set; }
public string Email { get; set; }
public string City { get; set; }
public string State { get; set; }
public int Pincode { get; set; }
}C# обработчик события PagedCollectionViewDemo_Loaded:
void PagedCollectionViewDemo_Loaded(object sender, RoutedEventArgs e)
{
Employee[] emps = new Employee[10];
emps[0] = new Employee();
emps[0].Name = "Ashish Ghoda";
emps[0].Email = "aghoda@TechnologyOpinion.com";
emps[0].City = "New Providence";
emps[0].Pincode = 07974;
emps[0].State = "New Jersey";
emps[1] = new Employee();
emps[1].Name = "Jay Nanavaty";
emps[1].Email = "jnanavaty@TechnologyOpinion.com";
emps[1].City = "Baroda";
emps[1].Pincode = 390023;
emps[1].State = "Gujarat";
emps[2] = new Employee();
emps[2].Name = "Kruti Vaishnav";
emps[2].Email = "kvaishnav@TechnologyOpinion.com";
emps[2].City = "Delhi";
emps[2].Pincode = 350025;
emps[2].State = "Delhi";
emps[3] = new Employee();
emps[3].Name = "Pratixa Ghoda";
emps[3].Email = "pghoda@TechnologyOpinion.com";
emps[3].City = "New Providence";
emps[3].Pincode = 07974;
emps[3].State = "New Jersey";
//PagedCollectionView
//Grouping
PagedCollectionView pgn = new PagedCollectionView(emps);
//Binding to the DataGrid
myDataGrid.ItemsSource = pgn;
}Как видно из данного фрагмента кода список и он же источник данных создается вручную. В практическом занятии № 13 будет рассмотрено использование DataGrid с источником данных SQL Server 2008.


