<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FXML%2FXML_ListView</id>
		<title>Csharp/C Sharp/XML/XML ListView - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FXML%2FXML_ListView"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/XML/XML_ListView&amp;action=history"/>
		<updated>2026-04-30T01:40:30Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/XML/XML_ListView&amp;diff=294&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/XML/XML_ListView&amp;diff=294&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:18Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/XML/XML_ListView&amp;diff=295&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/XML/XML_ListView&amp;diff=295&amp;oldid=prev"/>
				<updated>2010-05-26T11:34:21Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Load XML file to DataTable then add DataTable to ListView==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;NewDataSet&amp;gt;&lt;br /&gt;
  &amp;lt;Employee&amp;gt;&lt;br /&gt;
    &amp;lt;ID&amp;gt;8&amp;lt;/ID&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;Joe&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;/Employee&amp;gt;&lt;br /&gt;
&amp;lt;/NewDataSet&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
public class Form1 : Form&lt;br /&gt;
{&lt;br /&gt;
    private System.Windows.Forms.Button cmdFillList;&lt;br /&gt;
    private System.Windows.Forms.ListView listView;&lt;br /&gt;
    private System.Windows.Forms.CheckBox chkGroups;&lt;br /&gt;
      public Form1() {&lt;br /&gt;
            InitializeComponent();&lt;br /&gt;
      listView.View = View.Tile;&lt;br /&gt;
      listView.TileSize = new Size(300, 50);&lt;br /&gt;
      FillList();&lt;br /&gt;
      }&lt;br /&gt;
    public static DataTable GetProducts()&lt;br /&gt;
    {&lt;br /&gt;
      DataSet dsStore = new DataSet();&lt;br /&gt;
      dsStore.ReadXml(&amp;quot;myXmlFile.xml&amp;quot;);&lt;br /&gt;
      return dsStore.Tables[&amp;quot;Employee&amp;quot;];&lt;br /&gt;
    }&lt;br /&gt;
    public static DataTable GetCategories()&lt;br /&gt;
    {&lt;br /&gt;
      DataSet dsStore = new DataSet();&lt;br /&gt;
      dsStore.ReadXml(&amp;quot;myXmlFile.xml&amp;quot;);&lt;br /&gt;
      return dsStore.Tables[&amp;quot;Employee&amp;quot;];&lt;br /&gt;
    }&lt;br /&gt;
    private void cmdFillList_Click(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
      FillList();&lt;br /&gt;
    }&lt;br /&gt;
    private void FillList()&lt;br /&gt;
    {&lt;br /&gt;
      listView.Items.Clear();&lt;br /&gt;
      if (listView.Groups.Count == 0)&lt;br /&gt;
      {&lt;br /&gt;
        DataTable dtGroups = GetCategories();&lt;br /&gt;
        foreach (DataRow dr in dtGroups.Rows)&lt;br /&gt;
        {&lt;br /&gt;
          listView.Groups.Add(dr[&amp;quot;ID&amp;quot;].ToString(), dr[&amp;quot;Name&amp;quot;].ToString());&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      listView.ShowGroups = chkGroups.Checked;&lt;br /&gt;
      DataTable dtProducts = GetProducts();&lt;br /&gt;
      listView.BeginUpdate();&lt;br /&gt;
      foreach (DataRow dr in dtProducts.Rows)&lt;br /&gt;
      {&lt;br /&gt;
        ListViewItem listItem = new ListViewItem(dr[&amp;quot;Name&amp;quot;].ToString());&lt;br /&gt;
        listItem.ImageIndex = 0;&lt;br /&gt;
        listItem.Group = listView.Groups[dr[&amp;quot;ID&amp;quot;].ToString()];&lt;br /&gt;
        listItem.SubItems.Add(dr[&amp;quot;ID&amp;quot;].ToString());&lt;br /&gt;
        listView.Items.Add(listItem);&lt;br /&gt;
      }&lt;br /&gt;
      if (listView.Columns.Count == 0)&lt;br /&gt;
      {&lt;br /&gt;
        listView.Columns.Add(&amp;quot;Product&amp;quot;, 100, HorizontalAlignment.Left);&lt;br /&gt;
        listView.Columns.Add(&amp;quot;ID&amp;quot;, 100, HorizontalAlignment.Left);&lt;br /&gt;
        listView.Columns.Add(&amp;quot;Description&amp;quot;, 100, HorizontalAlignment.Left);&lt;br /&gt;
      }&lt;br /&gt;
      listView.EndUpdate();&lt;br /&gt;
    }&lt;br /&gt;
    private void NewView(object sender, System.EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
      listView.View = (View)(((Control)sender).Tag);&lt;br /&gt;
    }&lt;br /&gt;
    private void listView_ColumnClick(object sender, ColumnClickEventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
      ListViewItemComparer sorter = listView.ListViewItemSorter as ListViewItemComparer;&lt;br /&gt;
      if (sorter == null)&lt;br /&gt;
      {&lt;br /&gt;
        sorter = new ListViewItemComparer(e.Column);&lt;br /&gt;
        listView.ListViewItemSorter = sorter;&lt;br /&gt;
      } else {&lt;br /&gt;
        if (sorter.Column == e.Column &amp;amp;&amp;amp; !sorter.Descending)&lt;br /&gt;
        {&lt;br /&gt;
          sorter.Descending = true;&lt;br /&gt;
          listView.Sorting = SortOrder.Descending;        &lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
          listView.Sorting = SortOrder.Ascending;&lt;br /&gt;
          sorter.Descending = false;&lt;br /&gt;
          sorter.Column = e.Column;&lt;br /&gt;
        }&lt;br /&gt;
      }  &lt;br /&gt;
      listView.Sort();&lt;br /&gt;
    }&lt;br /&gt;
    private void cmdResizeColumns_Click(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
      listView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private void listView_SelectedIndexChanged(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
      if (listView.SelectedItems.Count &amp;gt; 0)&lt;br /&gt;
        Console.WriteLine(listView.SelectedItems[0].SubItems[2].Text);&lt;br /&gt;
    }&lt;br /&gt;
    private void chkGroups_CheckedChanged(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
      FillList();&lt;br /&gt;
    }&lt;br /&gt;
    private void InitializeComponent()&lt;br /&gt;
    {&lt;br /&gt;
      this.cmdFillList = new System.Windows.Forms.Button();&lt;br /&gt;
      this.listView = new System.Windows.Forms.ListView();&lt;br /&gt;
      this.chkGroups = new System.Windows.Forms.CheckBox();&lt;br /&gt;
      this.SuspendLayout();&lt;br /&gt;
      // &lt;br /&gt;
      // cmdFillList&lt;br /&gt;
      // &lt;br /&gt;
      this.cmdFillList.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));&lt;br /&gt;
      this.cmdFillList.FlatStyle = System.Windows.Forms.FlatStyle.System;&lt;br /&gt;
      this.cmdFillList.Font = new System.Drawing.Font(&amp;quot;Tahoma&amp;quot;, 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));&lt;br /&gt;
      this.cmdFillList.Location = new System.Drawing.Point(269, 195);&lt;br /&gt;
      this.cmdFillList.Name = &amp;quot;cmdFillList&amp;quot;;&lt;br /&gt;
      this.cmdFillList.Size = new System.Drawing.Size(114, 24);&lt;br /&gt;
      this.cmdFillList.TabIndex = 7;&lt;br /&gt;
      this.cmdFillList.Text = &amp;quot;Fill List&amp;quot;;&lt;br /&gt;
      this.cmdFillList.Click += new System.EventHandler(this.cmdFillList_Click);&lt;br /&gt;
      // &lt;br /&gt;
      // listView&lt;br /&gt;
      // &lt;br /&gt;
      this.listView.AllowColumnReorder = true;&lt;br /&gt;
      this.listView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)&lt;br /&gt;
            | System.Windows.Forms.AnchorStyles.Left)&lt;br /&gt;
            | System.Windows.Forms.AnchorStyles.Right)));&lt;br /&gt;
      this.listView.FullRowSelect = true;&lt;br /&gt;
      this.listView.GridLines = true;&lt;br /&gt;
      this.listView.Location = new System.Drawing.Point(7, 8);&lt;br /&gt;
      this.listView.MultiSelect = false;&lt;br /&gt;
      this.listView.Name = &amp;quot;listView&amp;quot;;&lt;br /&gt;
      this.listView.Size = new System.Drawing.Size(254, 282);&lt;br /&gt;
      this.listView.Sorting = System.Windows.Forms.SortOrder.Ascending;&lt;br /&gt;
      this.listView.TabIndex = 6;&lt;br /&gt;
      this.listView.SelectedIndexChanged += new System.EventHandler(this.listView_SelectedIndexChanged);&lt;br /&gt;
      this.listView.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listView_ColumnClick);&lt;br /&gt;
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);&lt;br /&gt;
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;&lt;br /&gt;
      this.ClientSize = new System.Drawing.Size(390, 381);&lt;br /&gt;
      this.Controls.Add(this.listView);&lt;br /&gt;
      this.Controls.Add(this.cmdFillList);&lt;br /&gt;
      this.Font = new System.Drawing.Font(&amp;quot;Tahoma&amp;quot;, 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));&lt;br /&gt;
      this.Name = &amp;quot;Form1&amp;quot;;&lt;br /&gt;
      this.Text = &amp;quot;ListView Example&amp;quot;;&lt;br /&gt;
      this.ResumeLayout(false);&lt;br /&gt;
      this.PerformLayout();&lt;br /&gt;
    }&lt;br /&gt;
  [STAThread]&lt;br /&gt;
  static void Main()&lt;br /&gt;
  {&lt;br /&gt;
    Application.EnableVisualStyles();&lt;br /&gt;
    Application.Run(new Form1());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
  public class ListViewItemComparer : System.Collections.IComparer&lt;br /&gt;
  {&lt;br /&gt;
    private int column;&lt;br /&gt;
    public int Column&lt;br /&gt;
    {&lt;br /&gt;
      get { return column; }&lt;br /&gt;
      set { column = value; }&lt;br /&gt;
    }&lt;br /&gt;
    private bool numeric = false;&lt;br /&gt;
    public bool Numeric&lt;br /&gt;
    {&lt;br /&gt;
      get { return numeric; }&lt;br /&gt;
      set { numeric = value; }&lt;br /&gt;
    }&lt;br /&gt;
    private bool descending = false;&lt;br /&gt;
    public bool Descending&lt;br /&gt;
    {&lt;br /&gt;
      get { return descending; }&lt;br /&gt;
      set { descending = value; }&lt;br /&gt;
    }&lt;br /&gt;
    public ListViewItemComparer(int columnIndex)&lt;br /&gt;
    {&lt;br /&gt;
      Column = columnIndex;&lt;br /&gt;
    }&lt;br /&gt;
    public int Compare(object x, object y)&lt;br /&gt;
    {&lt;br /&gt;
      ListViewItem listX, listY;&lt;br /&gt;
      if (descending)&lt;br /&gt;
      {&lt;br /&gt;
        listY = (ListViewItem)x;&lt;br /&gt;
        listX = (ListViewItem)y;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        listX = (ListViewItem)x;&lt;br /&gt;
        listY = (ListViewItem)y;&lt;br /&gt;
      }&lt;br /&gt;
      if (Numeric)&lt;br /&gt;
      {&lt;br /&gt;
        decimal valX, valY;&lt;br /&gt;
        Decimal.TryParse(listX.SubItems[Column].Text, out valX);&lt;br /&gt;
        Decimal.TryParse(listY.SubItems[Column].Text, out valY);&lt;br /&gt;
        return Decimal.rupare(valX, valY);&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        return String.rupare(&lt;br /&gt;
          listX.SubItems[Column].Text, listY.SubItems[Column].Text);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>