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)); }
/// <summary> /// datagridからセーブデータを生成 /// </summary> /// <returns></returns> AllDataForXaml CreateSaveDataFromDataGrid() { var alldataForSave = new AllDataForXaml(); foreach (DataForXaml item in upperdatagrid.Items) { alldataForSave.dataList.Add(item); } return alldataForSave; }