Visual Studio 2017 Communityを用いて行っています。C#,WPF共にまだまだ勉強中ですので基礎的な点で間違えているかもしれません。そのような点についてもぜひご指摘頂けるとありがたいです。
WPFのDataGridのItemSourceにObservableCollectionを与えても、下の画像のように項目数の分だけ空白行が現れ、正しく表示されません(画像は5項目を与えた状態)。
XAML
1// DataGrid部分のXAML抜粋 2<DataGrid x:Name="DataGrid1" IsReadOnly="True" />
csharp
1public partial class MainWindow : Window 2{ 3 public ObservableCollection<Data> data = new ObservableCollection<Data>(); 4 5 public MainWindow() 6 { 7 InitializeComponent(); 8 DataGrid1.ItemsSource = data; 9 } 10} 11 12public class DataOperate 13{ 14 private MainWindow mw = (MainWindow)App.Current.MainWindow; 15 16 private async void DataAdd(string d1,string d2) 17 { 18 await mw.Dispatcher.InvokeAsync(() => mw.data.Add(new Data(d1, d2))); 19 } 20} 21 22public class Data 23{ 24 public string Data1; 25 public string Data2; 26 public Data(string d1,string d2) 27 { 28 Data1 = d1; 29 Data2 = d2; 30 } 31}
ここで、DataOperateクラス内のDataAddを呼び出してデータを追加して行こうとしています。
ですが、追加するたびに空白行が増えるだけで、データをちゃんと表示してくれません。
ObservableCollectionを使うのは初めてですので、いまいち正しく使えていないかもしれません。
正しく表示させるにはどのようにすればよいのでしょうか?
よろしくお願いします。
追記
- DataAdd実行後、MainWindowのdataに正しくデータを入っているか確認したところ、正しくデータが入っておりました。そのため、表示段階やObservableCollectionの問題でしょうか…?(9/9 1:38)


回答2件
あなたの回答
tips
プレビュー