Как я могу перенести текст элемента в Listview на новую страницу через ViewModel? - PullRequest
0 голосов
/ 28 мая 2020

У меня есть список, заполненный элементами, созданными пользователем. При нажатии на элемент пользователь попадает на новую страницу, которая меняет свои метки в зависимости от имени элемента через модель просмотра.

Я новичок в привязке данных и пытаюсь научить себя, как это сделать. сделайте это, но онлайн-документации очень не хватает.

Мне удалось получить информацию в ViewModel через привязку SelectedItem, однако она не передается на следующую страницу.

ViewModel :

public ClassListModel classDetails;
public string className; //Bound to Label in next page
public ClassListModel ClassDetails //Bound to SelectedItem in first page
        {
            get
            {
                return classDetails;
            }            
            set {
                if (classDetails == value)
                { return; }

                else {
                    classDetails = value;
                    className = classDetails.Name;
                    OnPropertyChanged("ClassDetails");
                }
            }
        }

Ярлык пуст, есть предложения?

1 Ответ

0 голосов
/ 28 мая 2020

Вы можете установить значения элементов в новую ViewModel перед перенаправлением страницы или вы можете использовать существующую ViewModel и выполнить привязку как BindingContext новой страницы.
На новой странице у вас будет ViewModel, заполненная значениями.

public void ItemSelected(object sender, EventArgs e)
{
    var item = (MyListViewItem) sender;
    var nextPage = new NextPage
    {
        BindingContext = new NextPageViewModel
        {
            Label = item.Label,
            ...
        }
    };

    await Navigation.PushAsync(nextPage);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...