Добрый день, есть коллекция которая заполняется из базы MySQL:
while (contains_result.Read())
{
ItemsForContains.Add(
new Contains()
{
CId = contains_result["id"].ToString(),
ProfId = contains_result["profId"].ToString()
});
}
Класс со свойствами:
public class Contains : INotifyPropertyChanged
{
private string _cid;
private string _groupid;
public string CId
{
get { return _cid; }
set { if (_cid != value) { _cid = value; RaisePropertyChanged(); } }
}
public string GroupId
{
get { return _groupid; }
set { if (_groupid != value) { _groupid = value; RaisePropertyChanged(); } }
}
protected void RaisePropertyChanged([CallerMemberName] string propertyName = null) =>
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
public event PropertyChangedEventHandler PropertyChanged;
}
Все это дело привязано к ListView (ItemsSource). Я пытаюсь сделать что-бы при клике по одной из строк ListView мне к примеру выдавало MessageBox с данными именно той строки, на которую кликнул. Делаю вот так: Привязка к SelectedItem в ListView:
SelectedItem="{Binding SelectedItemsContains}"
SelectedItemsContains:
private Contains _SelectedItemsContains;
public Contains SelectedItemsContains
{
get { return _SelectedItemsContains; }
set
{
_SelectedItemsContains = value; RaisePropertyChanged();
}
}
protected void RaisePropertyChanged([CallerMemberName] string propertyName = null) =>
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
public event PropertyChangedEventHandler PropertyChanged;
Ну и само событие на клик:
private void editProf_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
MessageBox.Show(SelectedItemsContains.CId);
}
Выводит "Ссылка на объект не указывает на экземпляр объекта.", а если добавляю в метод editProf_MouseLeftButtonUp строку SelectedItemsContains = new Contains(); ошибка пропадает, но выводит просто пустой MessageBox
Дело в том, что первый клик лишь только выделяет элемент, а вот второй клик по этому же элементу должен выдавать информацию. Поэтому нужно проверять на null
, а потом уж выводить.
private void editProf_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (SelectedItemsContains != null)
MessageBox.Show(SelectedItemsContains.CId);
}
Фрилансер или Digital-агентство - Как сделать правильный выбор?
C# WinFormThread запускается и работает, но блокирует все элементы формы
На данный вопрос уже ответили:
Есть txt - файл вида: [Володя_Синяк #1 Охранник 5 лет], в котором #1 это номер отделаЗадача заключается в том, чтобы при вводе нужного отдела сортировало...