Решено
У меня есть таблица SQLite, созданная из класса с именем Стратегия , которая имеет два свойства String StrategyCode
и String StrategyID
.Я привязываю столбец StrategyCode к Spinner с этим кодом.
private void BindList()
{
try
{
var list = connection.Query<Strategy>("SELECT StrategyCode FROM Strategy");
BindStrategy = list.ConvertAll(x => Convert.ToString(x));
var StratAdpater = new ArrayAdapter<System.String>(this, Resource.Layout.spinner_item, BindStrategy);
StratAdpater.SetDropDownViewResource(Resource.Layout.spinner_item);
spinner2.Adapter = StratAdpater;
}
catch(Exception e)
{
Toast.MakeText(this, e.ToString(), ToastLength.Long).Show();
}
}
У меня есть textview прямо под этим Spinner, где я хочу показать StrategyID
соответствующегоКод стратегии выбран из Spinner.Вот как я это делаю.
try
{
var selectedstrat = spinner2.SelectedItem.ToString();
var userselection = (from a in connection.Table<Strategy>()
where a.StrategyCode == selectedstrat
select a);
strategyID.Text = userselection.FirstOrDefault().StrategyID;
}
catch (Exception e)
{
Toast.MakeText(this, e.ToString(), ToastLength.Long).Show();
}
Но я получаю System.NullReferenceException - (ссылка на объект не установлена на экземпляр объекта), а StrategyID не устанавливается на Textview.Но когда я жестко кодирую значение StrategyCode
Например:
var userselection = (from a in connection.Table<Strategy>()
where a.StrategyCode == "Strategy1"
select a);
, тогда TextView отображает идентификатор стратегии с жестким кодом.Что здесь может быть не так?Я пробовал это
var userselection = (from a in connection.Table<Strategy>()
where a.StrategyCode == selectedstrat
select a.StrageyID).FirstOrDefault();
StrategyID.Text = userselection.ToString();
Но все же я не могу получить StrategyID в TextView.