Я хочу, чтобы проверить, если элемент уже присутствует в DataGrid, так что я сделал этот код:Содержит не работает должным образом (проверьте, если элемент уже существует в DataGrid)
if (MainWindow.AppWindow.Teams_DataGrid.Items.Contains(squadra))
{
MessageBox.Show("Already present.");
}
но условие всегда ложно. Вставить значения в DataGrid следующим образом:
MainWindow.AppWindow.Teams_DataGrid.Items.Add(new
{
code = rdr.GetStringOrNull(7),
name = rdr.GetStringOrNull(6),
championship = rdr.GetStringOrNull(4),
shortName = rdr.GetStringOrNull(8),
squadMarketValue = rdr.GetStringOrNull(9)
});
NB: РДР является читателем запроса. И код, имя и другие материалы являются обязательными в DataGrid Xaml, например:
Binding="{Binding Path = 'name'}"
Почему состояние всегда ложное? Что я делаю неправильно?
ПОЛНЫЙ КОД:
string stm = @" SELECT *
FROM teams l
LEFT JOIN soccerseason s ON s.id = l.id
WHERE caption LIKE " + "'" + MainWindow.AppWindow.League.SelectedValue.ToString() +
"%' AND s.years = " + MainWindow.AppWindow.Season.SelectedValue.ToString();
MySqlCommand cmd = new MySqlCommand(stm, database.Connection);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
string squadra = rdr.GetStringOrNull(6);
if (MainWindow.AppWindow.Teams_DataGrid.Items.Contains(squadra))
{
MessageBox.Show("Squadra già inserita.");
}
else
{
MainWindow.AppWindow.Teams_DataGrid.Items.Add(new
{
code = rdr.GetStringOrNull(7),
name = rdr.GetStringOrNull(6),
championship = rdr.GetStringOrNull(4),
shortName = rdr.GetStringOrNull(8),
squadMarketValue = rdr.GetStringOrNull(9)
});
}
}
rdr.Close();
вам нужно пройти через каждую строку и проверить, содержит ли она или нет? –
Что такое 'squadra'? Вы действительно не показали нам достаточно кода, чтобы помочь нам помочь вам. –
Являются ли оболочки одинаковыми между DataGrid.Items и значением squadra? –