Ejemplo n.º 1
0
        public MainWindow()
        {
            InitializeComponent();

            SaveDefaultLayout();

            //コンテキストメニューは論理Treeが違うため、
            //そのままだとElementNameが使えないため
            //https://social.msdn.microsoft.com/Forums/netframework/ja-JP/f2202fdc-2fab-4406-9189-58cfec6539da/contextmenu-commandparameter?forum=wpfja
            NameScope.SetNameScope(contextMenu, NameScope.GetNameScope(this));

            try
            {
                if (System.IO.File.Exists(_dataFileName))
                {
                    //データファイルからデータを取得
                    using (System.IO.StreamReader sr = new System.IO.StreamReader(
                        _dataFileName, System.Text.Encoding.GetEncoding("shift_jis")))
                    {
                        System.Xml.Serialization.XmlSerializer serializer =
                            new System.Xml.Serialization.XmlSerializer(typeof(AllDataForXaml));
                        _allData = (AllDataForXaml)serializer.Deserialize(sr);
                    }

                    MainPanel.DataContext = _allData.dataList;
                }
                else
                {
                    XmlDocument document = new XmlDocument();

                    XmlDeclaration declaration = document.CreateXmlDeclaration("1.0", "shift_jis", null);  // XML宣言
                    XmlElement root = document.CreateElement("anime");  // ルート要素

                    document.AppendChild(declaration);
                    document.AppendChild(root);

                    // ファイルに保存する
                    document.Save(_dataFileName);

                    _allData = new AllDataForXaml();

                    MainPanel.DataContext = _allData.dataList;

                }
            }
            catch (Exception e)
            {
                //なんかバインディングエラーのxamlParseExceptionとか出るので
            }

            IsNotNeedSaved = true;
            IsAddRow = false;
            DefaultRowNumber = _allData.dataList.Count;

            //レイアウトのロード
            if (System.IO.File.Exists(_configFileName))
                LoadLayout();

            RestTimeText.Text = RestTime;

            dataNumDisplay.Content = "視聴数:" + _allData.dataList.Count(s => !string.IsNullOrEmpty(s.Title));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// datagridからセーブデータを生成
        /// </summary>
        /// <returns></returns>
        AllDataForXaml CreateSaveDataFromDataGrid()
        {
            var alldataForSave = new AllDataForXaml();

            foreach (DataForXaml item in upperdatagrid.Items)
            {
                alldataForSave.dataList.Add(item);
            }

            return alldataForSave;
        }