Xamarin表单按钮IsVisible绑定不适用于Android

时间:2017-10-30 15:22:12

标签: android binding xamarin.forms converter

我尝试搜索相同的错误而没有结果,所以这是我的问题:

我有一个Xamarin表单项目,将部署在Android和iOS上。在我的一个视图中,我有2个按钮,只有在用户首先选择了一些选项时才会显示。这在iOS上运行得很好,但是当我在Android模拟器上部署时,除非我切换方向,否则不会显示按钮。以下是代码示例:

<Button
    Grid.Column="0"
    Grid.Row="0"
    TextColor="{StaticResource AwesomeTxtColor}"
    Text="Click Me"
    BackgroundColor="{StaticResource AwesomeBgColor}"
    IsVisible="{Binding SelectedIndex, Converter={StaticResource isGreaterOrEqualZero}}"
    Command="{Binding AwesomeCommand}" />

同样,转换器正在按调试会话和绑定工作。问题只发生在Android上。 iOS正在按预期工作。 Xamarin Forms版本:2.3.4.267。任何人以前都经历过这个问题,或者对可能出现的问题有任何想法?

1 个答案:

答案 0 :(得分:0)

事实证明这是一个线程问题。用于填充我的视图中的选择器的列表使用以下命令加载:

await Task.Run(() => {
  //API calls to load lists
});

我把它改为:

Device.BeginInvokeOnMainThread(() => {
  //API calls to load lists
});

现在Android更新了用户界面。很奇怪,但显然列表中的那些值被困在一个不同的线程......