如何在平台标签上的 ToolbarItem 上绑定图像图标

How to bind image icon on ToolbarItem on Platform tag

如何在 Xamarin.Forms

中的 ToolbarItem OnPlatform 标签上绑定图像图标

这是我的代码:

<ToolbarItem 
    Icon="{OnPlatform iOS='iconscalendarplus64.png', Android='iconscalendarplus64.png'}" 
    Priority="0"
    Order="Primary" 
    Command="{Binding PrikaziCommand}"

我正在尝试为 Android OnPlatform 绑定图像,但它不起作用。

最简单的方法是:

                <ToolbarItem.Icon>
                <OnPlatform x:TypeArguments="ImageSource">
                    <OnPlatform.iOS><FileImageSource File=""icon.png""/></OnPlatform.iOS>
                    <OnPlatform.Android><FileImageSource File=""icon.png""/></OnPlatform.Android>
                    <OnPlatform.WinPhone><FileImageSource File=""Images/icon.png""/></OnPlatform.WinPhone>
                </OnPlatform>
                </ToolbarItem.Icon>

好处是您可以根据平台使用所有 4 种类型的 ImageSource。

祝您好运,如有疑问,请随时回来

自从 Android and iOS properties of the OnPlatform are not BindableProperty

它们不支持数据绑定。因此你不能绑定那些 属性.

作为替代方案,您可以在 ViewModel 中将特定于平台的图像源设置为 属性,然后改为使用它。

XAML

<ContentPage.ToolbarItems>
    <ToolbarItem IconImageSource="{Binding PlatformSpecificImage}"/>
</ContentPage.ToolbarItems>

查看模型

public ImageSource PlatformSpecificImage { get; set; }

public ViewModel()
{
    if(Device.RuntimePlatform == Device.Android)
    {
        PlatformSpecificImage = "android_image.png";
    }
    else
    {
        PlatformSpecificImage = "iOS_image.png";
    }
}

希望这对您有所帮助!