This is a migrated thread and some comments may be shown as answers.

DataSet Binding RadGridView

2 Answers 384 Views
GridView
This is a migrated thread and some comments may be shown as answers.
ronald
Top achievements
Rank 1
ronald asked on 30 Jan 2011, 08:47 AM
hi,
I have a dataset object which contains 2 datatable (relation). How do i bind this dataset to the radgridview with allowing to insert a new row on both parent and child grid?

thanks

So far this is the code

using System;
using System.Collections.Generic;
using System.Linq;
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.Shapes;
using System.Collections.ObjectModel;
using System.Data;
 
namespace WpfApplication8
{
    /// <summary>
    /// Interaction logic for Window3.xaml
    /// </summary>
    public partial class Window3 : Window
    {
        public Window3()
        {
            InitializeComponent();
 
            this.DataContext = this;
 
            //RadGridView1.DataMember = CarsSet.Tables["Car"].TableName;
        }
 
 
        public DataSet CarsSet
        {
            get
            {
                DataSet carSet = new DataSet();
 
                DataTable car = new DataTable("Car");
                DataTable comp = new DataTable("Complaint");
 
                DataColumn col = new DataColumn("AllWheelDrive");
                car.Columns.Add(col);
                col = new DataColumn("Doors");
                car.Columns.Add(col);
                col = new DataColumn("Make");
                car.Columns.Add(col);
                col = new DataColumn("Model");
                car.Columns.Add(col);
                col = new DataColumn("ModelYear");
                car.Columns.Add(col);
 
                col = new DataColumn("Doors");
                comp.Columns.Add(col);
                col = new DataColumn("DateOfComplaint");
                comp.Columns.Add(col);
                col = new DataColumn("Complaint");
                comp.Columns.Add(col);
                col = new DataColumn("Resolved");
                comp.Columns.Add(col);
 
                DataRow row = car.NewRow();
                row["Doors"] = "test1";
                row["Make"] = "test2";
                row["Model"] = "test3";
                row["ModelYear"] = "test4";
 
                car.Rows.Add(row);
 
                row = comp.NewRow();
                row["Doors"] = "test1";
                row["DateOfComplaint"] = "test4";
                row["Complaint"] = "test2";
                row["Resolved"] = "test3";
 
 
                comp.Rows.Add(row);
 
                carSet.Tables.Add(car);
                carSet.Tables.Add(comp);
 
                carSet.Relations.Add(new DataRelation("link", carSet.Tables["Car"].Columns["Doors"], carSet.Tables["Complaint"].Columns["Doors"]));
                return carSet;
            }
 
 
        }
    }
}

<
Window xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"  x:Class="WpfApplication8.Window3"
        Title="Window3" Height="300" Width="600">
    <Grid>
        <telerik:RadGridView x:Name="RadGridView1" CanUserFreezeColumns="False" GridLinesVisibility="Horizontal"
                             ShowInsertRow="true" DataMember="Car"
                             ItemsSource="{Binding CarsSet}"  
                             AutoGenerateColumns="False">
            <telerik:RadGridView.ChildTableDefinitions>
                <telerik:GridViewTableDefinition />
            </telerik:RadGridView.ChildTableDefinitions>
            <telerik:RadGridView.Columns>
                <telerik:GridViewDataColumn DataMemberBinding="{Binding AllWheelDrive}" Header="Order Date" />
                <telerik:GridViewDataColumn DataMemberBinding="{Binding Doors}" Header="Employee" />
                <telerik:GridViewDataColumn DataMemberBinding="{Binding Make}" />
                <telerik:GridViewDataColumn DataMemberBinding="{Binding Model}" Header="Ship Country" />
                <telerik:GridViewDataColumn DataMemberBinding="{Binding ModelYear}" Header="Ship City" />
            </telerik:RadGridView.Columns>
            <telerik:RadGridView.HierarchyChildTemplate>
                <DataTemplate>
                    <telerik:RadGridView x:Name="RadGridView1"
                                         DataMember="Complaint"
                                         CanUserFreezeColumns="False"
                                         ShowInsertRow="true" CanUserInsertRows="True"
                                         AutoGenerateColumns="False" ItemsSource="{Binding Complaint}" 
                                         ShowGroupPanel="False">
                        <telerik:RadGridView.Columns>
                            <telerik:GridViewDataColumn DataMemberBinding="{Binding DateOfComplaint}" Header="Product ID" />
                            <telerik:GridViewDataColumn DataMemberBinding="{Binding Complaint}" Header="Unit Price" />
                            <telerik:GridViewDataColumn DataMemberBinding="{Binding Resolved}" Header="Quantity" />
                        </telerik:RadGridView.Columns>
                    </telerik:RadGridView>
                </DataTemplate>
            </telerik:RadGridView.HierarchyChildTemplate>
        </telerik:RadGridView>
    </Grid>
</Window>


2 Answers, 1 is accepted

Sort by
0
ronald
Top achievements
Rank 1
answered on 04 Feb 2011, 07:48 AM
anyone??? any helps on this???
0
Milan
Telerik team
answered on 04 Feb 2011, 03:00 PM

Hi ronald,

I am afraid that in order to achieve this you have to write additional code. Have you considered using another approached based on ViewModel instead? 

I have attached a sample application which demonstrates a scenario similar to yours which uses ViewModels and insertion works on all hierarchy levels. 



Kind regards,
Milan
the Telerik team
Let us know about your Windows Phone 7 application built with RadControls and we will help you promote it. Learn more>>
Tags
GridView
Asked by
ronald
Top achievements
Rank 1
Answers by
ronald
Top achievements
Rank 1
Milan
Telerik team
Share this question
or