Quantcast
Channel: Simple Databinding in WPF
Viewing all articles
Browse latest Browse all 4

Simple Databinding in WPF

$
0
0
Below is a simple demo project about databind of ListView. Hope it helps.

XAML
<Window x:Class="ListViewSortDescriptions.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:ListViewSortDescriptions"
    Title="Window1" Height="300" Width="400"><Window.Resources><ObjectDataProvider x:Key="EmployeeInfoDataSource"
           ObjectType="{x:Type local:myEmployees}"/><DataTemplate x:Key="MyDataTemplate"><Border BorderBrush="#FF000FF0" BorderThickness="2,2,0,0" Margin="-6,-2,-6,-2"><StackPanel Margin="6,2,6,2"><TextBlock Text="{Binding MySpecialBinding}"/></StackPanel></Border></DataTemplate><Style x:Key="MyItemContainerStyle" TargetType="{x:Type ListViewItem}"><Setter Property="HorizontalContentAlignment" Value="Stretch" /><Setter Property="VerticalContentAlignment" Value="Stretch" /></Style></Window.Resources><Grid><ListView x:Name="MyListView"
            ItemsSource="{Binding 
            Source={StaticResource EmployeeInfoDataSource}}" Margin="0,65,12,0"><ListView.View><GridView  AllowsColumnReorder="true"
                    ColumnHeaderToolTip="Employee Information"><GridViewColumn  x:Name="gridClm_SelectRow" Width="35"><GridViewColumn.CellTemplate><DataTemplate><Border BorderBrush="#FF000000" BorderThickness="1,1,0,0" Margin="-6,-2,-6,-2"><CheckBox Margin="0" x:Name="cbSelectRow" 
                                          IsChecked="{Binding 
                                    RelativeSource={RelativeSource FindAncestor,
                                    AncestorType={x:Type ListViewItem}}, 
                                    Path=IsSelected}"                                 
                                          /></Border></DataTemplate></GridViewColumn.CellTemplate><CheckBox IsEnabled="False" Margin="0" x:Name="chkSelectAll"  /></GridViewColumn><GridViewColumn  
                            Header="First Name" Width="100"><GridViewColumn.CellTemplate><DataTemplate><Border BorderBrush="#FF000FF0" BorderThickness="2,2,0,0" ><StackPanel Width="100" ><TextBlock Text="{Binding FirstName}"/></StackPanel></Border></DataTemplate></GridViewColumn.CellTemplate></GridViewColumn><GridViewColumn 
                            Header="Last Name" Width="100"><GridViewColumn.CellTemplate><DataTemplate><Border BorderBrush="#FF000FF0" BorderThickness="2,2,0,0" ><StackPanel Width="100" ><TextBlock Text="{Binding LastName}"/></StackPanel></Border></DataTemplate></GridViewColumn.CellTemplate></GridViewColumn><GridViewColumn 
                            Header="Employee No." Width="100"><GridViewColumn.CellTemplate><DataTemplate><Border BorderBrush="#FF000FF0" BorderThickness="2,2,0,0" ><StackPanel Width="100"  ><TextBlock Text="{Binding EmployeeNumber}"/></StackPanel></Border></DataTemplate></GridViewColumn.CellTemplate></GridViewColumn></GridView></ListView.View></ListView></Grid></Window>

C#
using System.Windows;
using System.Windows.Data;
using System.ComponentModel;
using System.Collections.ObjectModel;
namespace ListViewSortDescriptions
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            if (MyListView.ItemsSource != null)
            {
                MyListView.Language = System.Windows.Markup.XmlLanguage.GetLanguage("da-DK");
                MyListView.Items.Culture = new System.Globalization.CultureInfo("da-DK", false);
                (CollectionViewSource.GetDefaultView(MyListView.ItemsSource) as ICollectionView).SortDescriptions.Clear();
                SortDescription sorter = new SortDescription("FirstName", ListSortDirection.Ascending);
                (CollectionViewSource.GetDefaultView(MyListView.ItemsSource) as ICollectionView).SortDescriptions.Add(sorter);
            }
        }
    }
    public class EmployeeInfo
    {
        private string _firstName;
        private string _lastName;
        private string _employeeNumber;
        public string FirstName
        {
            get { return _firstName; }
            set { _firstName = value; }
        }
        public string LastName
        {
            get { return _lastName; }
            set { _lastName = value; }
        }
        public string EmployeeNumber
        {
            get { return _employeeNumber; }
            set { _employeeNumber = value; }
        }
        public EmployeeInfo(string firstname, string lastname, string empnumber)
        {
            _firstName = firstname;
            _lastName = lastname;
            _employeeNumber = empnumber;
        }
    }
    public class myEmployees :
            ObservableCollection<EmployeeInfo>
    {
        public myEmployees()
        {
            Add(new EmployeeInfo("Jesper", "Aaberg", "12345"));
            Add(new EmployeeInfo("Dominik", "Paiha", "98765"));
            Add(new EmployeeInfo("Yale", "Li", "23875"));
            Add(new EmployeeInfo("Muru", "Subramani", "49392"));
        }
    }
}

Viewing all articles
Browse latest Browse all 4

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>