Демонстрация содержимого ListView в WPF
Автор: Пурушоттам Ратор (Purushottam Rathore)
В этой статье показывается, как создать элемент управления ListView, использующий режим представления GridView для отображения содержимого.
В этой статье показывается, как создать содержимое элемента управления ListView, используя GridView, XAML и код, а также демонстрируется специфическая возможность WPF.
Элемент управления ListView — это великолепный пример WPF для привязки данных из базы данных, так как его возможность практически бесконечны. Эта статья о ListView, надеюсь, будет полезна начинающим разработчикам. Сегодня я начну с простой сетки, основанной на представлении списка, показывая, как создать столбцы, а также несколько различных способов получения данных для этих столбцов.
Теперь можно определить режим представления GridView, определяя объекты GridViewColumn. В следующем примере показывается, как определять объекты GridViewColumn, привязанные к содержимому данных, заданных для элемента управления ListView. В этом примере GridView определяется три объекта GridViewColumn, отображаемых на поля Name, EMail и CreatedDate источника данных DataSource, заданного как свойство ItemsSource элемента управления ListView.
Пример. Напишите следующий код в файле window1.xaml.
Window1.xaml:
<Window x:Class="WpfApplication2.Window1" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"Title="ListView" Height="350" Width="400" Loaded="Window1_Loaded">
<Window.Resources>
<DataTemplate x:Key="FirstCell">
<StackPanel Orientation="Horizontal"></StackPanel>
</DataTemplate>
</Window.Resources>
<Grid>
<ListView ItemsSource="{Binding}" Name="lstView" Background="LightGray">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=User_LoginID}" Width="75"/>
<GridViewColumn Header="EMail" DisplayMemberBinding="{Binding Path=User_EMail}" Width="200"/>
<GridViewColumn Header="CreatedDate" DisplayMemberBinding="{Binding Path=IsCreatedDate}" Width="125"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
Window1.xaml.cs:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Linq;
using System.Data;
using System.Data.SqlClient;
using System.ComponentModel;
using System.Configuration;
using System.Xml;
namespace WpfApplication2
{
public partial class Window1 : Window
{
DataSet ds = new DataSet();
public Window1()
{
InitializeComponent();
}
private void Window1_Loaded(object sender, RoutedEventArgs e)
{
Grid_Loaded();
}
private void Grid_Loaded()
{
SqlConnection con = new SqlConnection("Data source=.;initial catalog=Puru; uid=sa;password=;");
SqlCommand cmd = new SqlCommand("select top 20 User_LoginID,User_EMail, convert(varchar(12),IsCreatedDate,107)IsCreatedDate from tbl_User", con);
SqlDataAdapter sqlDa = new SqlDataAdapter();
sqlDa.SelectCommand = cmd;
sqlDa.Fill(ds);
lstView.DataContext = ds.Tables[0].DefaultView;
}
}
}
Результат:
.jpg)