前提
WPFでデータグリッドを使用していますが、データグリッドに設定した項目と同時に、変数の項目が追加されてしまいます。
値も設定した項目と追加された項目の両方に重複して入ってしまいます。
実現したいこと
変数の項目が追加されず、XAMLで記述した項目に値が入力されるようにしたいです。
発生している問題・エラーメッセージ
理想の表示
No | Name | Time |
---|---|---|
1 | 山田 | 12:34:56 |
↓
現在の表示
No | Name | Time | DGNo | DGName | DGTime |
---|---|---|---|---|---|
1 | 山田 | 12:34:56 | 1 | 山田 | 12:34:56 |
該当のソースコード
MainWindow.xaml
XAML
1<Window x:Class="WpfApp1.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:WpfApp1" 7 mc:Ignorable="d" 8 Title="MainWindow" Height="450" Width="800"> 9 <Grid> 10 <DataGrid ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Auto" Margin="10" 11 Name="DGdata" IsReadOnly="true"> 12 <DataGrid.Columns> 13 <DataGridTextColumn Header="No" Binding="{Binding DG_No}"/> 14 <DataGridTextColumn Header="Name" Binding="{Binding DG_Name}"/> 15 <DataGridTextColumn Header="Time" Binding="{Binding DG_Time}"/> 16 </DataGrid.Columns> 17 </DataGrid> 18 </Grid> 19</Window> 20
MainWindows.xaml.cs
C#
1namespace WpfApp1 2{ 3 public partial class MainWindow : Window 4 { 5 public MainWindow() 6 { 7 InitializeComponent(); 8 9 ObservableCollection<ClsTest> test = new ObservableCollection<ClsTest>(); 10 for (int i = 0; i < 5; i++) 11 { 12 test.Add(new ClsTest((i+1).ToString(), "山田", "11:23:45")); 13 } 14 DGdata.ItemsSource = test; 15 } 16 17 private class ClsTest 18 { 19 public string DG_No { get; set; } 20 public string DG_Name { get; set; } 21 public string DG_Time { get; set; } 22 23 public ClsTest(string dG_No, string dG_Name, string dG_Time) 24 { 25 DG_No= dG_No; 26 DG_Name= dG_Name; 27 DG_Time= dG_Time; 28 } 29 } 30 } 31}
補足情報(FW/ツールのバージョンなど)
VisualStudio 2022
.NET Framework 4.7.1
回答3件
あなたの回答
tips
プレビュー