Quantcast
Viewing latest article 5
Browse Latest Browse All 12

DataGrid - row selectors missing

Here is the code. I've actually created a sample code but it reflects the real code exactly. There are two collections: the main collection Customers and the nested (child) collection Orders.

The DataGrid for the Orders collection does not display row selectors.

<Window x:Class="QuickTests.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="MainWindow" Height="210" Width="370"><StackPanel x:Name="CustomersContainer"><TextBlock Text="{Binding Name}" /><DataGrid x:Name="GridTest" 
                CanUserSortColumns="False"    
                CanUserReorderColumns="False" 
                CanUserAddRows="True" 
                CanUserDeleteRows="True"
                AutoGenerateColumns="True" 
                HeadersVisibility="All" 
                AlternatingRowBackground="WhiteSmoke" 
                VerticalGridLinesBrush="Gray" 
                HorizontalGridLinesBrush="Gray"
                ItemsSource="{Binding Path=Orders}" 
                SelectionUnit="FullRow" 
                IsEnabled="True" 
                IsReadOnly="False" 
                IsHitTestVisible="True"></DataGrid></StackPanel></Window>


and the corresponding code behind:

using System;
using System.Collections.ObjectModel; ObservableCollection
using System.ComponentModel;
using System.Windows;
using System.Windows.Data;
namespace QuickTests
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            Loaded += new RoutedEventHandler(MainWindow_Loaded);
        }
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            CustomersContainer.DataContext = Customer.GetSampleCustomers();
        }
    }
    public class Customer : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        protected void OnPropertyChanged(string propName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propName));
            }
        }
        private string name;
        public string Name
        {
            get { return name; }
            set { name = value; OnPropertyChanged("Name"); }
        }
        private ObservableCollection<Order> orders;
        public ObservableCollection<Order> Orders
        {
            // Return the actual collection.
            get
            {
                return orders;
            }
            private set
            {
                orders = value;
            }
        }
        public static ObservableCollection<Customer> GetSampleCustomers()
        {
            ObservableCollection<Customer> customers = new ObservableCollection<Customer>();
            ObservableCollection<Order> orders1 = new ObservableCollection<Order>
            {
                new Order { DatePlaced=DateTime.Now, Amount=100 },
                new Order { DatePlaced=DateTime.Now, Amount=200 },
                new Order { DatePlaced=DateTime.Now, Amount=300 }
            };
            customers.Add(new Customer { Name = "Alfki", Orders = orders1 });
            ObservableCollection<Order> orders2 = new ObservableCollection<Order>
            {
                new Order { DatePlaced=DateTime.Now, Amount=400 },
                new Order { DatePlaced=DateTime.Now, Amount=500 },
                new Order { DatePlaced=DateTime.Now, Amount=600 }
            };
            customers.Add(new Customer { Name = "Zalambdodont", Orders = orders2 });
            return customers;
        }
    }
    public class Order : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        protected void OnPropertyChanged(string propName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propName));
            }
        }
        private DateTime datePlaced;
        public DateTime DatePlaced
        {
            get { return datePlaced; }
            set { datePlaced = value; OnPropertyChanged("DatePlaced"); }
        }
        private decimal amount;
        public decimal Amount
        {
            get { return amount; }
            set { amount = value; OnPropertyChanged("Amount"); }
        }
    }
}

Thanks,

Leszek


Wiki: wbswiki.com
Website: www.wisenheimerbrainstorm.com


Viewing latest article 5
Browse Latest Browse All 12

Trending Articles



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