/// <summary>
        /// 内部ストレージに保存
        /// </summary>
        void Save()
        {
            var docs = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
            var file = System.IO.Path.Combine(docs, "save.xml");

            using (var st = System.IO.File.OpenWrite(file))
            {
                items.Save(st);
            }
        }
        public void TestSaveStream()
        {
            var lst = new List <ToDo>();

            lst.Add(new ToDo()
            {
                Id = 1, Text = "ccc", DueDate = new DateTime(2017, 5, 1), CreatedAt = new DateTime(2017, 4, 3), Completed = false
            });
            lst.Add(new ToDo()
            {
                Id = 2, Text = "bbb", DueDate = new DateTime(2017, 5, 2), CreatedAt = new DateTime(2017, 4, 2), Completed = true
            });
            lst.Add(new ToDo()
            {
                Id = 3, Text = "aaa", DueDate = new DateTime(2017, 5, 3), CreatedAt = new DateTime(2017, 4, 1), Completed = false
            });
            var items = new ToDoFiltableCollection(lst);

            var  sw = System.IO.File.OpenWrite("save.xml");
            bool b  = items.Save(sw);

            sw.Close();
            Assert.AreEqual(true, b);

            /// 新しいコレクションを用意する
            var newItems = new ToDoFiltableCollection();
            var sr       = System.IO.File.OpenRead("save.xml");

            b = newItems.Load(sr);
            sr.Close();
            Assert.AreEqual(true, b);
            Assert.AreEqual(3, newItems.Count);
            Assert.AreEqual(1, newItems[0].Id);
            Assert.AreEqual("ccc", newItems[0].Text);
            Assert.AreEqual(new DateTime(2017, 5, 1), newItems[0].DueDate);
            Assert.AreEqual(new DateTime(2017, 4, 3), newItems[0].CreatedAt);
            Assert.AreEqual(false, newItems[0].Completed);

            System.IO.File.Delete("save.xml");
        }