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

Samples for manual creation

3 Answers 116 Views
DataForm
This is a migrated thread and some comments may be shown as answers.
Greg
Top achievements
Rank 1
Greg asked on 16 Apr 2011, 12:04 AM
Hi,

I am trying to use the RadDataForm to display non-CLR based information and am having trouble finding examples of either building the form through the code behind or some other way. What we have is an object that has a collection of properties (KeyValuePairs (names, object)) which are created by the end user and displayed in a PropertyGrid through the ICustomTypeDescriptor interface.

Thanks for the help,
Greg

3 Answers, 1 is accepted

Sort by
0
Pavel Pavlov
Telerik team
answered on 20 Apr 2011, 03:47 PM
Hi Greg,

We do not have such example. However I will be glad to help you the following way -
can you please paste me a sample implementation of your object ( the one you need edited in RadDataForm ) . I will try to prepare a small sample app for you .

All the best,
Pavel Pavlov
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Greg
Top achievements
Rank 1
answered on 20 Apr 2011, 11:12 PM
I have added a fairly simple example where I am using a datatemplate and a stackpanel to achieve the effect of a data driven data entry form.  I will probably end up implementing something using the code behind to facilitate picklists and things like that but I did not see how to do this with the RadDataForm.

Thanks,
Greg

<Window x:Class="Sandbox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <DataTemplate x:Key="DataForm">
            <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
                <TextBlock Text="{Binding Name}" Width="100"/>
                <TextBox Text="{Binding Value, Mode=TwoWay }" HorizontalAlignment="Stretch" MinWidth="200" ToolTip="{Binding Description}" />
            </StackPanel>
        </DataTemplate>
    </Window.Resources>
    <Grid>
        <ScrollViewer CanContentScroll="True" VerticalScrollBarVisibility="Auto">
            <GroupBox Header="Configuration">
                <StackPanel Orientation="Vertical" Name="ConfigurationStackPanel"  DataContext="{Binding}" Margin="5, 0, 0, 15">
                    <ItemsControl ItemsSource="{Binding}" ItemTemplate="{StaticResource DataForm}"/>
                </StackPanel>
            </GroupBox>
        </ScrollViewer>
    </Grid>
</Window>
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.Navigation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using System.ComponentModel;

namespace Sandbox
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            ObservableCollection<ConfigurationParameter> config = new ObservableCollection<ConfigurationParameter>();
            for (int i = 0; i < 10; i++)
            {
                config.Add(new ConfigurationParameter { Name = "name_" + i, Description = "Description_" + i, Value = i.ToString() });
            }

            InitializeComponent();
            this.ConfigurationStackPanel.DataContext = config;           
        }
    }

    public class ConfigurationParameter
    {
        public string Name
        {
            get;
            set;
        }

        public string Value
        {
            get;
            set;
        }

        public string Description
        {
            get;
            set;
        }
    }
}
0
Pavel Pavlov
Telerik team
answered on 22 Apr 2011, 01:41 PM
Hello Greg,

Thanks for pasting the sample code. Things are now clear .
Since RadDataForm can not be fed with such ObservableCollection<ConfigurationParameter> , you may need will need to create an object instead. Since data is dynamic and properties may vary in count , this should be  dynamic.

Such approach is demonstrated in this blogpost.It is demonstrated with RadGridView, but the principle is the same for RadDataForm .  Actually you can directly take the data table from the blogpost and use it in your code.

In case you have difficulties implementing this approach , do not hesitate to contact me .

Greetings,
Pavel Pavlov
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
Tags
DataForm
Asked by
Greg
Top achievements
Rank 1
Answers by
Pavel Pavlov
Telerik team
Greg
Top achievements
Rank 1
Share this question
or