public override void SetValue(object component, object value)
        {
            FinancialData trade = (FinancialData)component;

            if (null != trade)
            {
                trade.SetProp(Key, value);
            }
            OnValueChanged(component, EventArgs.Empty);
        }
        // get a default list of financial items
        public static FinancialDataList GetFinancialData()
        {
            var list = new FinancialDataList();
            var rnd  = new Random(0);
            var asm  = Assembly.GetExecutingAssembly();

            foreach (string resName in asm.GetManifestResourceNames())
            {
                if (resName.EndsWith("data.zip"))
                {
                    var zip = new C1.C1Zip.C1ZipFile(asm.GetManifestResourceStream(resName));
                    using (var sr = new StreamReader(zip.Entries["StockSymbols.txt"].OpenReader()))
                    {
                        while (!sr.EndOfStream)
                        {
                            var sn = sr.ReadLine().Split('\t');
                            if (sn.Length > 1 && sn[0].Trim().Length > 0)
                            {
                                var data = new FinancialData();
                                data.SetProp("Symbol", sn[0]);
                                data.SetProp("Name", sn[1]);
                                data.SetProp("Bid", rnd.Next(1, 1000));
                                data.SetProp("Ask", (decimal)rnd.NextDouble());
                                data.SetProp("LastSale", (decimal)rnd.NextDouble());
                                data.SetProp("BidSize", rnd.Next(10, 500));
                                data.SetProp("AskSize", rnd.Next(10, 500));
                                data.SetProp("LastSize", rnd.Next(10, 500));
                                data.SetProp("Volume", rnd.Next(10000, 20000));
                                data.SetProp("QuoteTime", DateTime.Now);
                                data.SetProp("TradeTime", DateTime.Now);
                                list.Add(data);
                                FinancialData.BuildPropertyDescriptorCollection(data._propBag, false);
                            }
                        }
                    }
                    list.AutoUpdate = true;
                    return(list);
                }
            }
            throw new Exception("Can't find 'data.zip' embedded resource.");
        }