在Android设备上使用Xamarin表格-pcl v 2.3.4.267 -Debug
我有一个用作按钮的图像
<Image Source="loginbutton.png"
Aspect="AspectFit"
HorizontalOptions="Fill"
Margin="50,20,50,0"
fe:TappedGestureAttached.Command="{Binding Login}"
IsVisible ="{Binding user.IsSubmitEnabled}"<---works fine
IsEnabled="{Binding user.IsSubmitEnabled}"<---Does nothing
/>
正如我在代码中提到的,Is Visible Works Great但是启用它什么也没做。
注意: - 如果有任何解决方法,请分享。
答案 0 :(得分:1)
这是Xamarin中的一个已知问题,已经报告here,应该在未来版本的Xamarin.Forms中修复,更具体地说,版本 2.4.0-pre 。
作为解决方法,您可以使用IsSubmitEnabled作为df = pd.DataFrame(
np.random.choice(
np.arange(6),
size=(100, 2),
p=np.arange(1, 7) / 21
), columns=list('AB')
)
c = pd.crosstab(df.A, df.B).stack().reset_index(name='C')
c.plot.scatter('A', 'B', s=c.C * 10)
中CanExecute
参数的参数。
这样的事情:
Command
但您还需要在Property setter中添加一行public MyViewModel()
{
Login = new Command(() => OnLogin(), () => IsSubmitEnabled);
}
。
Login.CanExecute(null);
这应该同时起作用。直到修复工作正在进行中。
注意:仅仅是为了获取信息,这个问题似乎只发生在Android上,而在iOS上似乎工作正常。
希望这会有所帮助.-
答案 1 :(得分:0)
您是否同时使用这两种语句?
IsVisible ="{Binding user.IsSubmitEnabled}"<---works fine
IsEnabled="{Binding user.IsSubmitEnabled}"<---Does nothing
然后IsEnabled = false仅在按钮不可见时才有效,因为两者都绑定到相同的布尔属性=&gt; IsSubmitEnabled。
也许你必须使用第二个布尔绑定属性?
答案 2 :(得分:0)
如果您在启用属性false时想要无法点击,请执行以下操作
由于 IsVisible 和 IsEnable 的第一个绑定属性必须不同。
<Image Source="loginbutton.png"
Aspect="AspectFit"
HorizontalOptions="Fill"
Margin="50,20,50,0"
fe:TappedGestureAttached.Command="{Binding Login}"
IsVisible ="{Binding user.IsSubmitVisible}"
IsEnabled="{Binding user.IsSubmitEnabled}"
/>
您可以在ViewModel中更改代码,如:
public void Login()
{
If(IsSubmitEnabled){
// Put your code here
}
}
答案 3 :(得分:0)
根据this post,如果我们在绑定命令之前绑定IsEnabled属性,则属性将不会触发。我遇到了同样的问题,并在Command绑定后移动了IsEnabled绑定,并正确设置了IsEnabled属性。
希望有所帮助