RSS weather layer
IdentifyDlg.cs
// Copyright 2012 ESRI
// 
// All rights reserved under the copyright laws of the United States
// and applicable international laws, treaties, and conventions.
// 
// You may freely redistribute and use this sample code, with or
// without modification, provided you include the original copyright
// notice and use restrictions.
// 
// See the use restrictions.
// 

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using ESRI.ArcGIS.esriSystem;

namespace RSSWeatherLayer
{
  /// <summary>
  /// The IdentifyDlg is used by the Identify object to display the identify results
  /// </summary>
  public class IdentifyDlg : System.Windows.Forms.Form
  {
    private System.Windows.Forms.ListView listView1;
    private System.Windows.Forms.ColumnHeader columnField;
    private System.Windows.Forms.ColumnHeader columnValue;
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.Container components = null;

    public IdentifyDlg()
    {
      //
      // Required for Windows Form Designer support
      //
      InitializeComponent();

      //
      // TODO: Add any constructor code after InitializeComponent call
      //
    }

    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
      if( disposing )
      {
        if(components != null)
        {
          components.Dispose();
        }
      }
      base.Dispose( disposing );
    }

    #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
      this.listView1 = new System.Windows.Forms.ListView();
      this.columnField = new System.Windows.Forms.ColumnHeader();
      this.columnValue = new System.Windows.Forms.ColumnHeader();
      this.SuspendLayout();
      // 
      // listView1
      // 
      this.listView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
      this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
                                                                                this.columnField,
                                                                                this.columnValue});
      this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
      this.listView1.Location = new System.Drawing.Point(0, 0);
      this.listView1.Name = "listView1";
      this.listView1.Size = new System.Drawing.Size(314, 272);
      this.listView1.TabIndex = 0;
      this.listView1.View = System.Windows.Forms.View.Details;
      // 
      // columnField
      // 
      this.columnField.Text = "Field";
      this.columnField.Width = 100;
      // 
      // columnValue
      // 
      this.columnValue.Width = 200;
      // 
      // IdentifyDlg
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(314, 272);
      this.Controls.Add(this.listView1);
      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
      this.Name = "IdentifyDlg";
      this.ShowInTaskbar = false;
      this.Text = "Identify Dialog";
      this.ResumeLayout(false);

    }
    #endregion

    /// <summary>
    /// Populates the dialog's listview in order to display the identify results
    /// </summary>
    /// <param name="propSet"></param>
    /// <remarks>The identify results are passed by the layer by the IdentifyObject through a PropertySet</remarks>
    public void SetProperties(IPropertySet propSet)
    {
      if(null == propSet)
        return;

      //The listView gets pairs of items since it has two columns for fields and value
      
      string id = Convert.ToString(propSet.GetProperty("ID"));
      listView1.Items.Add(new ListViewItem(new string[2] {"ID", id}));

      string zipCode = Convert.ToString(propSet.GetProperty("ZIPCODE"));
      listView1.Items.Add(new ListViewItem(new string[2] {"ZIPCODE", zipCode}));

      string cityName = Convert.ToString(propSet.GetProperty("CITYNAME"));
      listView1.Items.Add(new ListViewItem(new string[2] {"CITYNAME", cityName}));

      string latitude = Convert.ToString(propSet.GetProperty("LAT"));
      listView1.Items.Add(new ListViewItem(new string[2] {"LATITUDE", latitude}));

      string longitude = Convert.ToString(propSet.GetProperty("LON"));
      listView1.Items.Add(new ListViewItem(new string[2] {"LONGITUDE", longitude}));

      string temperature = Convert.ToString(propSet.GetProperty("TEMPERATURE"));
      listView1.Items.Add(new ListViewItem(new string[2] {"TEMPERATURE", temperature}));

      string description = Convert.ToString(propSet.GetProperty("CONDITION"));
      listView1.Items.Add(new ListViewItem(new string[2] {"DESCRIPTION", description}));

      string day = Convert.ToString(propSet.GetProperty("DAY"));
      listView1.Items.Add(new ListViewItem(new string[2] {"DAY", day}));

      string date = Convert.ToString(propSet.GetProperty("DATE"));
      listView1.Items.Add(new ListViewItem(new string[2] {"DATE", date}));

      string low = Convert.ToString(propSet.GetProperty("LOW"));
      listView1.Items.Add(new ListViewItem(new string[2] {"LOW", low}));

      string high = Convert.ToString(propSet.GetProperty("HIGH"));
      listView1.Items.Add(new ListViewItem(new string[2] {"HIGH", high}));

      string updated = Convert.ToDateTime(propSet.GetProperty("UPDATED")).ToLongTimeString();
      listView1.Items.Add(new ListViewItem(new string[2] {"UPDATED", updated}));

      string icon = Convert.ToString(propSet.GetProperty("ICONNAME"));
      listView1.Items.Add(new ListViewItem(new string[2] {"ICON", icon}));
    }
  }
}