Я очень новичок в WPF. Я пытаюсь привязать свойство к строке в DataGrid, чтобы при щелчке строки свойство было установлено. Элемент ItemsSource, связанный с DataGrid, представляет собой ObservableCollection объектов типа Field.WPF: привязка к SelectedItem строки в DataGrid
Я попытался связать атрибут SelectedItem с DataGrid, но свойство не вызывается. Я использую почти идентичный код для привязки к SelectedItem ComboBox, и это работает нормально. Есть ли разница, о которой я не знаю?
<ComboBox ItemsSource="{Binding RecordTypes}" SelectedItem="{Binding SelectedRecordType}" ...
<DataGrid ItemsSource="{Binding Fields}" SelectedItem="{Binding SelectedField}" ...
В моей ViewModel:
private Field SelectedField
{
get
{
return _selectedField;
}
set
{
_selectedField = value;
}
}
(я буду использовать свойство авто позже, это только в настоящее время настроено вверх, как это так, чтобы я мог сломаться, когда собственность была установлена).
Я не уверен, что это имеет значение, но DataGrid состоит из 2 DataGridTextColumns и DataGridTemplateColumn, который содержит флажок.
У кого-нибудь есть идеи? Я бы очень признателен за любые предложения.
Чтобы подтвердить, причина, по которой я хочу прослушивать щелчок строки, - это проверить флажок, если флажок установлен. Если для этого есть лучшее решение, пожалуйста, дайте мне знать.
Я никогда не привязывался к собственности, которая была отмечена как конфиденциальная, я считаю, что она должна быть публичной собственностью, чтобы быть привязанной к пользовательскому интерфейсу. Также используется ваш ObservableCollection как ItemSource объектов типа Field? –
Я думаю, вам также нужно установить привязки столбцов. – dburner
, пожалуйста, проверьте окно вывода для любых ошибок привязки. И я не уверен, но вам нужно реализовать INotifyPropertyChanged для вашей собственности. – Khushi