3

C# の Forms DataGridViewのように、 WPF DataGridの行と列をどのように反復処理できますか?

たとえば、Forms DataGridView がある場合、次のようなことができます。

for(int i = 0; i < formsDataGrid1.Rows.Count; i++)
{
  MessageBox.Show(formsDataGrid1.Rows[i].ToString());
  for(int j = 0; j < formsDataGrid1.Columns.Count; j++)
     MessageBox.Show(formsDataGrid1.Rows[i].Cells[j].ToString());
}

助けてくれてありがとう!

**編集:

これを行う理由は、ユーザーが DataGrid を使用して、DataGrid の 2 番目の列に特定の情報を入力するためです。また、この DataGrid には複数の行があり、そのデータを取得してデータベースを更新できるようにしたいと考えています。

4

3 に答える 3

4

通常、これは行いません。DataGrid 自体ではなく、基になるデータ ソースにアクセスします。たとえば、データ ソースが であるとしIEnumerable<Foo>ます。

foreach(Foo f in foos)
{
    MessageBox.Show(f.Name);
}

編集:

グリッドの特定のセルに明示的にアクセスする必要はありません。グリッドがオブジェクトのリストにバインドされている場合、ユーザーがグリッド内の対応するセルを編集すると、オブジェクトのプロパティが自動的に更新されます。

連絡先のリストを使用した簡単な例:

    public class Contact
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
    }
    ...
    ObservableCollection<Contact> contacts = new ObservableCollection<Contact>();
    dataGrid.ItemsSource = contacts;

    ...
于 2009-08-18T16:44:08.807 に答える
0

Grid.Column[x].GetCellContent(Row[y])メソッドを使ってみる

于 2012-02-02T08:30:11.563 に答える