Вы можете читать элементы из DataGrid.Items
, например:
foreach (var item in dataGrid1.Items)
{
string url = (string)((dynamic)item).URL;
//...
}
Однако лучше иметь строго типизированный подход. В этом случае вам нужно связать ItemsSource
из DataGrid
с ObservableCollection<DataType>
, где DataType
представляет структуру данных каждой строки. (например, у него есть привязываемое свойство URL и т. д.)
Вот пример:
<DataGrid ItemsSource="{Binding ElementName=root, Path=Items}" ...>
где root - это x: имя окна. и следующий код добавляется к коду Windows:
private ObservableCollection<RowVm> _items = new ObservableCollection<RowVm>();
public ObservableCollection<RowVm> Items { get { return _items; } }
где RowVm:
public class RowVm : DependencyObject
{
public string URL
{
get { return (string)GetValue(URLProperty); }
set { SetValue(URLProperty, value); }
}
public static readonly DependencyProperty URLProperty =
DependencyProperty.Register("URL", typeof(string), typeof(RowVm), new PropertyMetadata(""));
public string Source
{
get { return (string)GetValue(SourceProperty); }
set { SetValue(SourceProperty, value); }
}
public static readonly DependencyProperty SourceProperty =
DependencyProperty.Register("Source", typeof(string), typeof(RowVm), new PropertyMetadata(""));
}
Таким образом, вместо добавления к dataGrid1.Items
вы добавите к Items
и прочитаете из Items