问题描述
我有一张地图,我想将地图类型绑定到属性,但是我遇到了问题。当我点击按钮时,属性和地图类型必须改变。我认为这是绑定中的问题,但是如果我在构造函数中更改属性,它就会更改并且在命令中不起作用。该命令也有效,因为当您单击时,按钮上的图片会发生变化。 我尝试通过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 (将#修改为@)