#c# #wpf #xaml #datagrid
#c# #wpf #xaml #datagrid
Вопрос:
У меня есть DataGrid в xaml, и я заполняю его, устанавливая ItemsSource следующим образом
var myList = new List<Product>();
//Product is a standard class created for the purpose of populating the datagrid
myList.Add(new Product(){Name = "bla", SerialNumber = 1234})
myList.Add(new Product(){Name = "somename", SerialNumber = 567})
dataGrid.ItemsSource = myList;
Таким образом, в основном каждая строка в datagrid заполняется значениями из экземпляра класса Product.
Позже в коде, когда пользователь выбирает строку в datagrid и нажимает клавишу, я получаю выбранную строку следующим образом
dataGrid.SelectedItem
Но теперь я, похоже, не могу понять, как получить экземпляр продукта, который использовался для создания этой выбранной строки.
Так, например, что-то вроде var test = DataGrid.SelectedItem .Экземпляр, который будет таким же, как этот this var test = new Product(){Name = «bla», SerialNumber = 1234}
Ответ №1:
dataGrid.SelectedItem
Свойство должно возвращать ваш Product
экземпляр, но если у вас есть DataGridRow
объект, вы можете получить связанный элемент данных, используя DataGridRow.Item
свойство:
Product selectedProduct = (Product)yourDataGridRow.Item;
Комментарии:
1. О, конечно, мне нужно преобразовать выбранный элемент в продукт, прежде чем я его использую, я этого не понял.
2. Да,
DataGridRow.Item
свойство имеет типobject
.