问题描述
我正在尝试使菜单项的可见性以 DEBUG 宏为条件。 (这是一个调试菜单项,因此在发布版本中不应该可见。)我正在尝试遵循 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xaml-basics/xaml-markup-extensions
中的x:Static
示例
我的 AppShell 类中有以下内容:
namespace myappname
{
public partial class AppShell : Xamarin.Forms.Shell
{
#if DEBUG
public static readonly bool IsDebug = true;
#else
public static readonly bool IsDebug = false;
#endif
在 AppShell XAML 中,我尝试了多种变体
<FlyoutItem Title="Debug" Icon="DebugCheckedTests_16x.png" IsVisible="{x:Static local:bool.IsDebug}">
但是我尝试过的所有方法要么给我错误 XFC0000 无法解析类型“bool”——或其他一些错误。
我是不是偏离了基础,或者 bool 不是 x:Static 的有效类型?我该如何编码?
解决方法
从文档中,您 linked 要完成的任务属于“公共静态字段”,因此您需要指定定义字段 IsDebug
的类,在文档示例中类名是 AppConstants
,这不是“bool”类型的问题,你可以使用任何类型,只要它是属性期望的类型。
xmlns:localRoot="clr-namespace:myappname"
<FlyoutItem Title="Debug" Icon="DebugCheckedTests_16x.png"
IsVisible="{x:Static localRoot:AppShell.IsDebug}>