После обновления БД через метод Clear(); производиться обновление Observablecollection и DataGrid. Также опустошаются TextBoxes. Пока все хорошо. Однако после заполенения TextBox и попытки заново добавить данные в БД выдается ошибка NullReferenceException
public class Games: INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName]string prop = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(prop));
}
}
private string name;
public string Name
{
get { return name; }
set
{
name = value;
OnPropertyChanged();
}
}
private string price;
public string Price
{
get { return price; }
set
{
price = value;
OnPropertyChanged();
}
}
}
public class GamesVM
{
public GamesVM()
{
GamesCollection = new ObservableCollection<Games>();
_SelectedGames = new Games();
SearchGames();
}
public ObservableCollection<Games> GamesCollection { get; set; }
private Games _SelectedGames;
public Games SelectedGames
{
get
{ return _SelectedGames; }
set
{ _SelectedGames = value; }
}
public void SearchGames()
{
string query = "SELECT * FROM GamesTable";
command = new MySqlCommand(query, connection);
adapter = new MySqlDataAdapter(command);
DataTable dt = new DataTable();
adapter.Fill(dt);
foreach (DataRow row in dt.Rows)
{
var game = new Games
{
Name = row["Name"].ToString(),
Price= row["Price"].ToString()
};
GamesCollection.Add(game);
}
}
public void InsertNewGame()
{
if(SelectedGames.Name != null)
{
string Insert = "INSERT INTO Games (Name, Price) VALUES (SelectedGames.Name, SelectedGames.Price)";
}
/// <summary>
/// ...
/// </summary>
}
publick void Clear()
{
GamesCollection.Clear();
SearchGames();
}
}
if(SelectedGames.Name != null).->if(SelectedGames?.Name != null).. СамSelectedGamesя так понял у вас привязан к SelectedItem ListBox'a или что то в этом духе. Тогда сами подумайте, чему будет равно ваше свойство, если нечего не выбрано... – EvgeniyZ Jan 01 '19 at 17:29