2015-09-24 35 views
0

是否有構建方式來禁用/灰色ListView中的ViewCell?我一直在查看文檔,但我找不到任何東西。這是我到目前爲止。Xamarin.Forms在ListView中禁用項目

<ListView x:Name="lvNotes" ItemSelected="OnSelection"> 
      <ListView.ItemTemplate> 
      <DataTemplate> 
       <TextCell Text="{Binding Object.Name}" Detail="{Binding Object.Subject}"/> 
      </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 
+0

我不相信在X行有一個簡單的禁用項目。您是否考慮處理是否在綁定集合級別或綁定對象級別禁用項目。 IE我有一個ObservableCollection 設置爲列表源。汽車有一個bool「InStock」。如果汽車沒有插座,我不希望用戶進入細節/購買屏幕。當用戶點擊該行時,我檢查Cars instock屬性並確定我的下一步。 –

+0

@ClintLandry好吧,那麼如何做背景顏色呢? –

+0

檢查列表視圖是否爲viewcells背景顏色提供了屬性綁定,並將其綁定到汽車中的字段「color」,在mutator中爲instock設置顏色,以便將其設置爲禁用顏色或基於instock的顏色啓用顏色。 –

回答

2

對於改變背景,你可以很容易地使用Triggers

這裏是你的listView的例子,但與觸發器。當屬性Object.IsActive設置爲false時,網格的背景將變爲灰色。

<ListView x:Name="lvNotes" ItemSelected="OnSelection"> 
     <ListView.ItemTemplate> 
     <DataTemplate> 
      <Grid BackgroundColor="Green"> 
       <TextCell Text="{Binding Object.Name}" Detail="{Binding Object.Subject}"/> 
       <Grid.Triggers> 
        <DataTrigger TargetType="Grid" Binding="{Binding Object.IsActive}" Value="False"> 
         <Setter Property="BackgroundColor" Value="Gray"/> 
        </DataTrigger> 
       </Grid.Triggers> 
      </Grid> 
     </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
1

我想你會一個DataTemplateSelector for Xamarin.Forms來實現這種行爲。從這個博客帖子:

應該要放在項目的列表到一個ListView,但使用不同的 爲DataTemplate中某些項目?在微軟XAML,你 可以在ItemTemplateSelector屬性設置爲自定義 DataTemplateSelector,你會是所有設置

希望它可以幫助你。