前提・実現したいこと
Bindingの勉強をしています。
DataGridへのBindingをしてみたところ、思ったように表示されません。
下記の様に重複して表示されてしまいます。
Name | Code | Enable | Data_Name | Data_Code | Data_Enable |
---|---|---|---|---|---|
AAA | aaa | 111 | AAA | aaa | 111 |
<DataGrid.Columns>で指定した列(左3列)のみを表示したいのですが、どうすればよいでしょうか?
該当のソースコード
XAML
1<DataGrid x:Name="dataGrid" Margin="10"> 2 <DataGrid.Columns> 3 <DataGridTextColumn Header="Name" Width="80" 4 Binding="{Binding Data_Name}" /> 5 <DataGridTextColumn Header="Code" Width="100" 6 Binding="{Binding Data_Code}" /> 7 <DataGridTextColumn Header="Enable" Width="*" 8 Binding="{Binding Data_Enable}" /> 9 </DataGrid.Columns> 10</DataGrid>
C#
1public ObservableCollection<DataGrid_Data> Source_DG = new ObservableCollection<DataGrid_Data>(); 2 3public MainWindow() 4{ 5 InitializeComponent(); 6 7 string[] ItemNames = {"AAA", "BBB", "CCC", "DDD"}; 8 string[] ItemCodes = { "aaa", "bbb", "ccc", "ddd" }; 9 string[] ItemEnables = { "111", "222", "333", "444" }; 10 11 for(int i = 0; i < ItemNames.Length; i++) 12 { 13 Source_DG.Add(new DataGrid_Data(ItemNames[i], ItemCodes[i], ItemEnables[i]) { }); 14 } 15 16 dataGrid.ItemsSource = Source_DG; 17} 18 19public class DataGrid_Data 20{ 21 public string Data_Name { get; set; } 22 public string Data_Code { get; set; } 23 public string Data_Enable { get; set; } 24 25 public DataGrid_Data(string Name, string Code, string Enable) 26 { 27 Data_Name = Name; 28 Data_Code = Code; 29 Data_Enable = Enable; 30 } 31}
試したこと
・<DataGrid.Columns> </DataGrid.Columns> を削除すると、上図の右3列のみが表示され、データも表示される。
・dataGrid.ItemsSource = Source_DG; を削除すると、上図の左3列のみが表示されるが、データは表示されない。
回答1件
あなたの回答
tips
プレビュー