Как установить MenuItemTemplate из кода позади в Xamarin Forms Flyout? - PullRequest
0 голосов
/ 19 апреля 2020

Согласно документации MS, для каждого MenuItem от Xaml возможно следующее. Мы можем настроить каждый MenuItem с различными шаблонами данных.

<MenuItem Text="Help"
              Icon="help.png"
              Command="{Binding HelpCommand}"
              CommandParameter="https://docs.microsoft.com/xamarin/xamarin-forms/app-fundamentals/shell">
        <Shell.MenuItemTemplate>
            <DataTemplate>
                ...
            </DataTemplate>
        </Shell.MenuItemTemplate>
    </MenuItem>

Как я могу сделать то же самое из кода позади? Я добавляю динамические c MenuItems к моей выпадающей панели, но не могу установить шаблон данных.

var about = new MenuItem
                {
                    Text = "Privacy policy", 
                    Command = AppShell.AboutCommand
                };

                Shell.Current.Items.Add(about);

Где мне установить шаблон?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Я наконец понял это благодаря каналу Xamarin Gitter. Особая благодарность Шону Невиллу из команды Xamarin!

var about = new MenuItem
            {
                Text = "Privacy policy", 
                Command = AppShell.AboutCommand
            };
            Shell.SetMenuItemTemplate(about, (DataTemplate)Shell.Current.Resources["CustomMenuTemplate"]);
            Shell.Current.Items.Add(about);
0 голосов
/ 19 апреля 2020

Попробуйте с помощью свойства MenuItemTemplate оболочки.

Вы можете установить DataTemplate для элементов меню Shell следующим образом из класса Shell:

MenuItemTemplate = GetMenuItemTemplate();

Где GetMenuItemTemplate() будет либо создавать DataTemplate из кода, либо загружать его из ресурсов.

Надеюсь, это поможет .-

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...