我在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。乾杯 –