Новый ответ ... после перечитывания поста и до сих пор нигде не получая, я нашел, что случилось. Вы упомянули, что хотели получить значение идентификатора из выбранной строки, которая ранее не вызывала у меня мышления. Вот то, что, как я полагаю, у вас есть и что нужно.
Для того, чтобы ваш список записей отображался на экране, у вас, вероятно, есть что-то вроде
public List<YourRecordDataClassStructure> MyListOfNames {get; set;}
Затем, где-то внутри вашего форма, вы заполняете этот список записей, как запрашивается из базы данных.
Поскольку в вашем сообщении не отображен компонент вида
<DataGrid . . . >
, я могу только предположить, что это было что-то как
<DataGrid ItemsSource={Binding MyListOfNames} >
Следующий шаг ... Создайте новое привязываемое свойство в вашей модели представления, чтобы представить ЕДИНСТВЕННЫЙ экземпляр вашей структуры данных для привязки к «SelectedItem», выбранному из сетки ... что-то например
public YourRecordDataClassStructure JustOneItem {get; set;}
и обновите привязку DataGrid как
<DataGrid ItemsSource={Binding MyListOfNames}
SelectedItem={Binding JustOneItem} >
Так что теперь ваша форма имеет сетку, привязанную к вашему списку записей. ТАКЖЕ будет обновляться, когда любая запись выбирается из сетки данных, помещает копию текущей записи в свойство "JustOneItem" в модели представления.
Теперь вы можете игнорировать параметр и тип объекта как строку поскольку модель представления фактически имеет всю запись и может извлечь из нее любые / все значения, обновив тело метода
private void OnEdit(string itemToEdit)
{
// confirm the selected object from the DataGrid was bound and actually selected.
// if not, get out.
if (JustOneItem== null || JustOneItem.MyIdColumn == 0)
return;
// we now have the entire object, get the ID column directly from
// the entire record displayed
var idObiektu = JustOneItem.idObiektu;
atmaEntites.Database.ExecuteSqlCommand("UPDATE Obiekty SET stan = '2' WHERE idObiektu = " + idObiektu + ";");
}
Итак, первый шаг в команде ретрансляции кнопки, я явно предварительно проверяя, если в сетке была выбрана запись. Если ничего, выходите ... Кроме того, игнорируйте, если значение идентификатора записи было 0, поскольку у вас, вероятно, даже не было бы записи в списке без идентификатора, который нужно обновить.
HTH