From bff446926da7f83cd515e920fac5da594a47cd45 Mon Sep 17 00:00:00 2001 From: Felipe Momm Date: Fri, 28 Jun 2019 07:52:59 -0300 Subject: [PATCH] [Shell] MenuItem font image fix (#6628) fixes #6559 * [Shell] FontImageSource not working with MenuItem * [Shell] Adds missing Binding (FlyoutIcon) for ShellItem * Revert changes and adjust to change the binding instead * Replace magic strings for nameof --- Xamarin.Forms.Controls/XamStore/Icons.cs | 9 +++++++++ Xamarin.Forms.Controls/XamStore/StoreShell.xaml | 8 +++++++- Xamarin.Forms.Core/Shell/MenuShellItem.cs | 6 +++--- Xamarin.Forms.Core/Shell/ShellItem.cs | 1 + 4 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 Xamarin.Forms.Controls/XamStore/Icons.cs diff --git a/Xamarin.Forms.Controls/XamStore/Icons.cs b/Xamarin.Forms.Controls/XamStore/Icons.cs new file mode 100644 index 0000000..1a58bd2 --- /dev/null +++ b/Xamarin.Forms.Controls/XamStore/Icons.cs @@ -0,0 +1,9 @@ +using System; + +namespace Xamarin.Forms.Controls.XamStore +{ + static class Icons + { + public const string Card = "\uf585"; + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Controls/XamStore/StoreShell.xaml b/Xamarin.Forms.Controls/XamStore/StoreShell.xaml index 8799677..d5e1909 100644 --- a/Xamarin.Forms.Controls/XamStore/StoreShell.xaml +++ b/Xamarin.Forms.Controls/XamStore/StoreShell.xaml @@ -99,7 +99,13 @@ - + + + + + diff --git a/Xamarin.Forms.Core/Shell/MenuShellItem.cs b/Xamarin.Forms.Core/Shell/MenuShellItem.cs index d88a461..98a4145 100644 --- a/Xamarin.Forms.Core/Shell/MenuShellItem.cs +++ b/Xamarin.Forms.Core/Shell/MenuShellItem.cs @@ -8,9 +8,9 @@ namespace Xamarin.Forms { MenuItem = menuItem; - SetBinding(TitleProperty, new Binding("Text", BindingMode.OneWay, source: menuItem)); - SetBinding(IconProperty, new Binding("Icon", BindingMode.OneWay, source: menuItem)); - SetBinding(FlyoutIconProperty, new Binding("Icon", BindingMode.OneWay, source: menuItem)); + SetBinding(TitleProperty, new Binding(nameof(MenuItem.Text), BindingMode.OneWay, source: menuItem)); + SetBinding(IconProperty, new Binding(nameof(MenuItem.IconImageSource), BindingMode.OneWay, source: menuItem)); + SetBinding(FlyoutIconProperty, new Binding(nameof(MenuItem.IconImageSource), BindingMode.OneWay, source: menuItem)); Shell.SetMenuItemTemplate(this, Shell.GetMenuItemTemplate(MenuItem)); MenuItem.PropertyChanged += OnMenuItemPropertyChanged; diff --git a/Xamarin.Forms.Core/Shell/ShellItem.cs b/Xamarin.Forms.Core/Shell/ShellItem.cs index 0f557d0..e8f883b 100644 --- a/Xamarin.Forms.Core/Shell/ShellItem.cs +++ b/Xamarin.Forms.Core/Shell/ShellItem.cs @@ -160,6 +160,7 @@ namespace Xamarin.Forms result.SetBinding(TitleProperty, new Binding(nameof(Title), BindingMode.OneWay, source: shellSection)); result.SetBinding(IconProperty, new Binding(nameof(Icon), BindingMode.OneWay, source: shellSection)); result.SetBinding(FlyoutDisplayOptionsProperty, new Binding(nameof(FlyoutDisplayOptions), BindingMode.OneTime, source: shellSection)); + result.SetBinding(FlyoutIconProperty, new Binding(nameof(FlyoutIcon), BindingMode.OneWay, source: shellSection)); return result; } -- 2.7.4