用代码实现WPF ListView 自定义模版

来源:互联网 发布:cmd常用网络命令 编辑:程序博客网 时间:2024/05/16 18:29

 

WPF 的模版设计极为强大,通过模版自定义ListView 的显示样式是一种最常用的显示列表的数据的方式,本文完全通过代码实现一个ListView,

ListView绑定的数据为RecordData,且每个格子之前都会有一个圆点。

 

创建ListView 显示列:

 public void InitRecordColumns()                     //初始化录音记录列信息        {            XmlDocument xml_doc = new XmlDocument();            try            {                xml_doc.Load("SystemConfig.xml");                XmlNode node = xml_doc.SelectSingleNode("Configs/RecordConfig");                XmlNodeList members = node.ChildNodes;                GridView gv_recordlist = new GridView();                gv_recordlist.Columns.Clear();                foreach (XmlNode member in members)                {                    string name = member.ChildNodes[0].InnerText;                    string column_name = member.ChildNodes[1].InnerText;                    int hidden = Convert.ToInt32(member.ChildNodes[2].InnerText);                    string width = member.ChildNodes[3].InnerText;                    if (hidden == 0)                    {                        GridViewColumn gvc_column = new GridViewColumn();                        GridViewColumnHeader gvch_column = new GridViewColumnHeader();                        gvch_column.Height = 25;                        gvch_column.Background = Brushes.LightBlue;                        gvch_column.Width = Convert.ToInt32(width);                        gvch_column.Content = column_name;                        gvch_column.ToolTip = name;                        gvch_column.Click += new RoutedEventHandler(gvch_column_Click);                        gvc_column.Header = gvch_column;                        //gvc_column.DisplayMemberBinding = new Binding(name);                        DataTemplate cdt = new DataTemplate();                        FrameworkElementFactory cfef = new FrameworkElementFactory(typeof(StackPanel));                        Binding binding = new Binding();                        binding.Path = new PropertyPath(name);                        cfef.SetValue(StackPanel.OrientationProperty, Orientation.Horizatal);                        FrameworkElementFactory subfef1 = new FrameworkElementFactory(typeof(Label));                        subfef1.SetValue(Label.ContentProperty, "●");                        cfef.AppendChild(subfef1);                        FrameworkElementFactory subfef2 = new FrameworkElementFactory(typeof(TextBox));                        subfef2.SetBinding(TextBox.TextProperty, binding);                        cfef.AppendChild(subfef2);                        cdt.VisualTree = cfef;                                              gvc_column.CellTemplate = cdt;                        gv_recordlist.Columns.Add(gvc_column);                    }                }                lv_record.View = gv_recordlist;                lv_record.SelectionMode = SelectionMode.Single;            }            catch (Exception ex)            {                MessageBox.Show("Create record view fail." + ex.ToString());                return;            }        }

 


 

原创粉丝点击