Как я могу получить выбранный элемент из DataGrid WPF?

185
28 марта 2019, 03:10

Я получаю DataTable из базы данных, после заполняю им DataGrid:

public ICollectionView Item
{
    get { return (ICollectionView)GetValue(ItemProperty); }
    set { SetValue(ItemProperty, value); }
}
public static readonly DependencyProperty ItemProperty =
    DependencyProperty.Register("Item", typeof(ICollectionView),
        typeof(ViewModel), new PropertyMetadata(null));
public ViewModel()
{
    database = new DBModel();
    data = database.GetDataTableProducts();
    Item = CollectionViewSource.GetDefaultView(data);
}

Привязка данных в XAML:

<DataGrid x:Name="DataGridProducts"
          AutoGenerateColumns="True"
          IsSynchronizedWithCurrentItem="False"
          ItemsSource="{Binding Item}"
          SelectedItem="{Binding SelectedItem}">
</DataGrid>

Мне нужно получить выбранную строку из DataGrid, но я не знаю как это сделать.
Данные для DataGrid могут изменяться (разные запросы - разные DataTable).

Answer 1

DataGrid (по крайне мере в этом случае) возвращает тип DataRowView. Дальше необходимые данные можно извлечь при помощи индексов.

Переменная для привязки (в ViewModel)

public DataRowView SelectedItem
    {
        get { return (DataRowView)GetValue(SelectedItemProperty); }
        set { SetValue(SelectedItemProperty, value); }
    }
    // Using a DependencyProperty as the backing store for SelectedItem.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty SelectedItemProperty =
        DependencyProperty.Register("SelectedItem", typeof(DataRowView), typeof(ViewModel), new PropertyMetadata(null));

Дальше можно использовать индекс для того, чтобы достать данные.

SelectedItem[0] и так далее (номер индекса - номер столбца в DataGrid)
READ ALSO
Как в wp_remote_request обработать таймаут?

Как в wp_remote_request обработать таймаут?

Всем привет! Делаю запрос через wp_remote_request с заданным тайм аутом, не понимаю как мне обрабатывать ситуацию если в заданный тайм аут ответ не пришел...

179
Как передать файл на PHP?

Как передать файл на PHP?

Есть смартфоновое приложение, которое загружает с сервера картинкиПоявилась необходимость вносить изменения в адрес запроса, чтобы на смартфон...

200
Ошибка в PHP &ldquo;Object of a class couldn&#39;t be converted to a string&rdquo;

Ошибка в PHP “Object of a class couldn't be converted to a string”

Всем привет! Столкнулся со странной для меня ошибкой, имеется код:

152