我在Xamarin形式一直致力于为最近一个项目,我一直在使用的TableView显示来自网络API检索记录的细节。有时,某些细节不存在,所以我想隐藏显示信息的部分。如何在Xamarin Forms中使用XAML隐藏TableSection?
但是,我无法找到一个方法来隐藏TableSection。
下面是一些XAML:
<TableView>
<TableRoot>
...
<!--Contact info-->
<TableSection IsVisible="{Binding HasContact}" Title="Contact">
<!--Contact name-->
<TextCell Text="{Binding ContactName}" Detail="Primary contact" />
<!--Phone-->
<TextCell Text="Phone"
Detail="{Binding FormattedContactPhoneNumber}"
Command="{Binding BindingContext.DialPhoneCommand, Source={x:Reference MainGrid}}"
CommandParameter="{Binding ContactPhoneNumber}"/>
<!--Email-->
<TextCell Text="Email"
Detail="{Binding ContactEmail}"
Command="{Binding BindingContext.SendEmailCommand, Source={x:Reference MainGrid}}"
CommandParameter="{Binding ContactEmail}"/>
</TableSection>
</TableRoot>
</TableView>
显然,IsVisible属性没有工作,因为它不存在抛出异常(它存在于其他元素,如标签)。我也试过使用VisualElement.IsVisible
,它会抛出一个无效的转换异常。那么有什么办法可以隐藏这一部分?
如果没有办法做到这一点,也许我需要去倒脏路径,并使用单独的TableViews(在那里,我可以用VisualElement.IsVisible):(
恐怕我还没有和xamarin工作,就像我想,但如果拿它一般XAML标准这将是'Visibility'财产你干脆把布尔通过一个转换器可以是'Visible'或'Collapsed'作为参数。即; '能见度=“坍塌”' –
谢谢,但是,Xamarin形式使用自己定制的控制和可见性属性不可用。表单在运行时转换为本机控件。 – Eric
真的吗?那很令人失望。不知道,如果MS购买他们,他们可能会尝试采用一些长期的标准惯例。当我有时间时,将不得不更多地修改xamarin。干杯 –