Сбой DataTemplateSelector в UWP - PullRequest
0 голосов
/ 03 мая 2018

Я загрузил несколько ярлыков в ListView, используя Grid. Я хочу изменить положение меток при повороте экрана.

Итак, я сделал что-то подобное.

protected override void OrientationChanged(OrientationValu newOrientation)
    {
        RdMyListView.ItemTemplate = null;
        if (newOrientation == OrientationValu.Landscape)
        {
            Debug.WriteLine("LAndscape");
            viewModel.IsLandscape = true;
            RdMyListView.ItemTemplate = new OrientationDataTemplateSelector
                {
                    LandscapeTemplate = landscapeTemplate,
                    PortraitTemplate = portraitTemplate,
                    IsLandscape = true
                };

        }
        else
        {
            Debug.WriteLine("Portrait");
            viewModel.IsLandscape = false;


                RdMyListView.ItemTemplate = new OrientationDataTemplateSelector
                {
                    LandscapeTemplate = landscapeTemplate,
                    PortraitTemplate = portraitTemplate,
                    IsLandscape = false
                };


        }
    }

Вот как я вызываю класс datatemplator и получаю DataTmplate. Когда мои Page загружаются, я присваиваю свои 2 личных шаблона данных вот так.

        landscapeTemplate = GetDataTemplate(true);
        portraitTemplate = GetDataTemplate(false);

На основании этого истинного или ложного my GetDataTemplate(bool isLandscape) будет возвращать различные шаблоны данных.

private DataTemplate GetDataTemplate (bool isLandscape)
    {
        var dataTemplate = new DataTemplate(() =>
        {

          // Implementation

       });
    return dataTemplate;

}

Но приложение UWP вылетает при максимизации окна симулятора. Андроид работает нормально. Пожалуйста, помогите мне. Спасибо

...