Поскольку FavoriteContent.ingredients
равно null
, в этой строке вы получите исключение FavoriteContent.ingredients.Split(',');
, которое будет перехвачено в привязке, и поэтому ваша ячейка просмотра не будет отображать этот контент. Во второй раз ваш FavoriteContent.ingredients
, безусловно, не равен нулю, поэтому он может обновить ячейку просмотра.
Так что я думаю, что вы должны просто добавить нулевую проверку перед выполнением вашей логики с FavoriteContent.ingredients
, чтобы избежать исключения:
private string _ingredients;
public string Ingredients
{
get
{
if (FavoriteContent?.ingredients == null) // IDK if FavoriteContent is a property or a class, I assumed is a property
return null; // or return string.empty;
string[] namesArray = FavoriteContent.ingredients.Split(',');
List<string> namesList = new List<string>(namesArray.Length);
namesList.AddRange(namesArray);
namesList.Reverse();
_ingredients = string.Join("\n", namesList);
return _ingredients;
}
}
А затем, когда вы загружаете FavoriteContent.ingredients
, вы просто указываете представлению обновить эту привязку, используя RaisePropertyChanged
:
// this is the part where you update FavoriteContent.ingredients in your ViewModel so that it is not null
FavoriteContent.ingredients = "my string, my other string, 2, 3";
RaisePropertyChanged(() => Ingredients); // you tell the view Ingredients has changed (make sure you are invoking this in your main thread if not use InvokeOnMainThread(() => RaisePropertyChanged(() => Ingredients));)
Е.И.В.