Telerik Winforms Custom RadListView Rows
A simple example using LightVisualElements and html for a custom ListView look.
Creates a listview with three columns, the first the row’s text field and columns two and three contain a StackElement with LightVisualElement children.
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using Telerik.WinControls.Layouts;
using Telerik.WinControls.UI;
namespace TelerikWinFormsApp4
{
public partial class RadForm1 : Telerik.WinControls.UI.RadForm
{
public RadForm1()
{
InitializeComponent();
this.Size = new Size(500, 300);
this.radListView1.VisualItemCreating += new ListViewVisualItemCreatingEventHandler(this.radListView1_VisualItemCreating);
// Populate BullJiveTestListItem with fluff
BindingList rows = new BindingList();
for (int alpha = 65; alpha < 85; alpha++) rows.Add(new BullJiveTestListItem(Convert.ToChar(alpha).ToString()));
radListView1.DataSource = rows;
radListView1.FullRowSelect = true;
radListView1.AllowArbitraryItemHeight = true;
}
private void radListView1_VisualItemCreating(object sender, ListViewVisualItemCreatingEventArgs e)
{
if (radListView1.ViewType == ListViewType.ListView && !(e.VisualItem is BaseListViewGroupVisualItem))
{
e.VisualItem = new BullJiveTestVisualItem();
}
}
}
public class BullJiveTestVisualItem : SimpleListViewVisualItem
{
private LightVisualElement hBox0, hBox1;
private StackLayoutPanel horizontalLayout;
private Point newSize = new Point(200, 0);
protected override void CreateChildElements()
{
base.CreateChildElements();
horizontalLayout = new StackLayoutPanel();
horizontalLayout.Orientation = Orientation.Horizontal;
hBox0 = new LightVisualElement();
hBox0.MinSize = new Size(newSize);
horizontalLayout.Children.Add(hBox0);
hBox1 = new LightVisualElement();
hBox1.MinSize = new Size(newSize);
horizontalLayout.Children.Add(hBox1);
Children.Add(horizontalLayout);
}
protected override void SynchronizeProperties()
{
base.SynchronizeProperties();
if (this.FindAncestor() == null) return;
this.Text = "Text";
hBox0.Text = "Value0: " + this.Data["Value0"] + "" +
"Value1: " + this.Data["Value1"] + "";
hBox1.Text = "Value2: " + this.Data["Value2"] + "" +
"Value3: " + this.Data["Value3"] + "";
TextAlignment = ContentAlignment.TopLeft;
}
protected override Type ThemeEffectiveType
{
get
{
return typeof(SimpleListViewVisualItem);
}
}
}
public class BullJiveTestListItem
{
public BullJiveTestListItem(string s)
{
Value0 = s + "0";
Value1 = s + "1";
Value2 = s + "2";
Value3 = s + "3";
}
public string Value0 { get; set; }
public string Value1 { get; set; }
public string Value2 { get; set; }
public string Value3 { get; set; }
}
}
Leave a Reply