2015-09-24 4 views
0

Есть ли встроенный способ отключения/серого ViewCell в ListView? Я смотрел документацию, но ничего не нашел. Вот что я до сих пор.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». Если автомобиль не инсталлирован, я не хочу, чтобы пользователь был отправлен на экран сведений/покупки. Когда пользователь нажимает на строку, я проверяю свойство «Ускорение» и определяю свой следующий шаг. –

+0

@ClintLandry Хорошо, так как же сделать цвет фона? –

+0

Проверьте, содержит ли listview свойство привязки к цвету фона viewcells и привязывает его к полю «цвет» в автомобиле, имеет цвет, установленный в мутаторе для 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 для некоторых из пунктов? В Microsoft XAML, вы могли установить свойство ItemTemplateSelector к пользовательскому DataTemplateSelector и вы будете все готовыми

Надеются, что это помогает.

Смежные вопросы