微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么命令中的地图不会更改绑定到正在更改的属性的地图类型?

如何解决为什么命令中的地图不会更改绑定到正在更改的属性的地图类型?

我有一张地图,我想将地图类型绑定到属性,但是我遇到了问题。当我点击按钮时,属性和地图类型必须改变。我认为这是绑定中的问题,但是如果我在构造函数中更改属性,它就会更改并且在命令中不起作用。该命令也有效,因为当您单击时,按钮上的图片会发生变化。 我尝试通过f10遍历代码,看到属性获取的是地图类型的值,但是地图本身并没有改变这种类型

    <customclasses:CustomMap
        AbsoluteLayout.LayoutBounds="0,1,1"
        AbsoluteLayout.LayoutFlags="All"
        MapType="{Binding MyMapType}">
    </customclasses:CustomMap>


    public MapPage()
    {
        InitializeComponent();
        BindingContext = new MasterPageVM();
    }


    partial class MasterPageVM : Baseviewmodel
    {
        #region Fields
        MapType myMapType { get; set; }
        #endregion

        #region Properties
        public MapType MyMapType
        {
            get => myMapType;
            set
            {
                if (this.myMapType == value)
                    return;

                this.myMapType = value;
                this.NotifyPropertyChanged();
            }
        }
        #endregion

        #region Constructor
        public MasterPageVM()
        {
            MyMapType = MapType.Hybrid;

            StandartMapCommand = new Command(StandardSelected);
            SatelliteMapCommand = new Command(SatelliteSelected);
            HybridMapCommand = new Command(HybridSelected);

        }
        #endregion

        #region Command
        public Command StandartMapCommand { get; set; }
        public Command SatelliteMapCommand { get; set; }
        public Command HybridMapCommand { get; set; }
        #endregion

        #region Methods
        public void StandardSelected()
        {
            MyMapType = MapType.Street;
        }

        public void HybridSelected()
        {
            MyMapType = MapType.Hybrid;
        }

        public void SatelliteSelected()
        {
            MyMapType = MapType.Satellite;
        }
        #endregion
    }

我拿了多余的代码,但是这里的主要问题是命令中的地图没有显示更改的地图类型,而是更改的地图类型已更改为新的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。