現在作成中のシステムにて
DataGridに動的に行を追加し、追加した行をViewModelから取得しようとしているのですが
上手く取得できません。
どうすればうまく取得(バインド)出来るのでしょうか。
コードはこちらになります。
テストとして更新command部分でDataGridを取得しようとしています。
xaml
1 <DataGrid AlternatingRowBackground="LightBlue" AutoGenerateColumns="False" DataContext="{Binding Griding, Mode=TwoWay}" ItemsSource="{Binding}" x:Name="GridView" Margin="4,144,0,-232" Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" > 2 <DataGrid.Columns> 3 <DataGridTextColumn IsReadOnly="True" Header="伝票番号" Binding="{Binding _Col1}"/> 4 <DataGridTextColumn IsReadOnly="True" Header="行" Binding="{Binding _Col2}"/> 5 <DataGridTextColumn IsReadOnly="True" Header="店名" Binding="{Binding _Col3}"/> 6 <DataGridTextColumn IsReadOnly="True" Header="色名" Binding="{Binding _Col4}"/> 7 <DataGridTextColumn IsReadOnly="True" Header="サイズ" Binding="{Binding _Col5}"/> 8 <DataGridTextColumn IsReadOnly="True" Header="納品日" Binding="{Binding _Col6}"/> 9 <DataGridTextColumn IsReadOnly="True" Header="発注日" Binding="{Binding _Col7}"/> 10 <DataGridTextColumn IsReadOnly="True" Header="発注数" Binding="{Binding _Col8}"/> 11 <DataGridTextColumn Header="訂正数" Binding="{Binding _Col9}"/> 12 <DataGridTextColumn IsReadOnly="True" Header="欠品数" Binding="{Binding _Col10}"/> 13 <DataGridTextColumn IsReadOnly="True" Header="原価単価" Binding="{Binding _Col11}"/> 14 <DataGridTextColumn IsReadOnly="True" Header="訂正原価" Binding="{Binding _Col12}"/> 15 <DataGridTextColumn IsReadOnly="True" Header="売単価" Binding="{Binding _Col13}"/> 16 <DataGridTextColumn IsReadOnly="True" Header="変更売単価" Binding="{Binding _Col14}"/> 17 </DataGrid.Columns> 18 </DataGrid>
C#
1if(DataSet.Rows.Count != 0) 2 { 3 DataTable m_dt = new DataTable("DataGrid"); 4 m_dt.Columns.Add(new DataColumn("_Col1", typeof(string))); 5 m_dt.Columns.Add(new DataColumn("_Col2", typeof(int))); 6 m_dt.Columns.Add(new DataColumn("_Col3", typeof(string))); 7 m_dt.Columns.Add(new DataColumn("_Col4", typeof(string))); 8 m_dt.Columns.Add(new DataColumn("_Col5", typeof(string))); 9 m_dt.Columns.Add(new DataColumn("_Col6", typeof(string))); 10 m_dt.Columns.Add(new DataColumn("_Col7", typeof(string))); 11 m_dt.Columns.Add(new DataColumn("_Col8", typeof(string))); 12 m_dt.Columns.Add(new DataColumn("_Col9", typeof(string))); 13 m_dt.Columns.Add(new DataColumn("_Col10", typeof(string))); 14 m_dt.Columns.Add(new DataColumn("_Col11", typeof(string))); 15 m_dt.Columns.Add(new DataColumn("_Col12", typeof(string))); 16 m_dt.Columns.Add(new DataColumn("_Col13", typeof(string))); 17 m_dt.Columns.Add(new DataColumn("_Col14", typeof(string))); 18 19 // サンプルデータ追加 20 DataRow newRowItem; 21 for (int i = 0; i < DataSet.Rows.Count; i++) 22 { 23 newRowItem = m_dt.NewRow(); 24 newRowItem["_Col1"] = DataSet.Rows[i].ItemArray[0].ToString(); 25 newRowItem["_Col2"] = (i + 1); 26 newRowItem["_Col3"] = DataSet.Rows[i].ItemArray[25].ToString(); 27 newRowItem["_Col4"] = "Nan"; 28 newRowItem["_Col5"] = "Nan"; 29 newRowItem["_Col6"] = DataSet.Rows[i].ItemArray[53].ToString(); 30 newRowItem["_Col7"] = DataSet.Rows[i].ItemArray[54].ToString(); 31 newRowItem["_Col8"] = DataSet.Rows[i].ItemArray[0].ToString(); 32 newRowItem["_Col9"] = DataSet.Rows[i].ItemArray[89].ToString(); 33 newRowItem["_Col10"] = "Nan"; 34 newRowItem["_Col11"] = DataSet.Rows[i].ItemArray[79].ToString(); 35 newRowItem["_Col12"] = DataSet.Rows[i].ItemArray[87].ToString(); 36 newRowItem["_Col13"] = DataSet.Rows[i].ItemArray[81].ToString(); 37 newRowItem["_Col14"] = "Nan"; 38 m_dt.Rows.Add(newRowItem); 39 } 40 41 GridView.DataContext = m_dt; 42 }
ViewModel
1using BmsClient.UI.Commands; 2using BmsClient.UI.Models; 3using BmsClient.UI.Printing; 4using BmsClient.UI.View; 5using System; 6using System.Collections.Generic; 7using System.Data; 8using System.Linq; 9using System.Text; 10using System.Threading.Tasks; 11using System.Windows; 12using System.Windows.Controls; 13using System.Windows.Input; 14 15namespace BmsClient.UI.ViewModels 16{ 17 class CorrectionEditWindowModel : LinkedViewModelBase<CorrectionEditWindowModel> 18 { 19 public string StoreCode { get; set; } 20 public string ItemCode { get; set; } 21 public string OrderDate { get; set; } 22 public DataGrid Griding { get; set; } 23 24 public CorrectionEditWindowModel() 25 { 26 } 27 28 /// <summary> 29 /// 更新コマンド。 30 /// </summary> 31 public ICommand UpdateCommand 32 { 33 get => new ActionCommand(() => 34 { 35 var test = Griding; 36 37 }); 38 } 39 40 41 /// <summary> 42 /// 画面削除コマンド。 43 /// </summary> 44 public ICommand ClearCommand 45 { 46 get => new ActionCommand(() => 47 { 48 }); 49 } 50 51 52 /// <summary> 53 /// 終了コマンド。 54 /// </summary> 55 public ICommand CloseCommand 56 { 57 get => new ActionCommand(() => 58 { 59 //View.Close(); 60 }); 61 } 62 63 public void ShowSelectedDate() 64 { 65 } 66 } 67} 68

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。