2015-06-07 4 views
4

Я пытаюсь изменить ViewCell на ListView, но ниже код не работает для меня: свойстваКак я могу изменить высоту в ViewCell

<DataTemplate> 
    <ViewCell Height="100"> 
     <StackLayout Orientation="Horizontal"> 
      <Image Source="{Binding Seller.Thumbnail}}" Aspect="AspectFit" /> 
      <StackLayout Orientation="Vertical" > 
       <Label Text="{Binding CouponName}" FontAttributes="Bold" FontSize="12" /> 
       <Label Text="{Binding EndOffer}" FontSize="11" /> 
      </StackLayout> 
     </StackLayout> 
    </ViewCell> 
</DataTemplate> 

ответ

1

Установка высоты для ViewCell должна работать.

Попробуйте установить VerticalOptions и HorizontalOptions в StackLayout. FillAndExpand.

-2

Рост/Вес в основном только для чтения в Xamarin.You может Не задан размер ViewCell.

Однако вы можете изменить свойство HeightRequest в StackLayout для достижения желаемого.

+2

«как правило» является ключевым термином здесь. В случае ViewCell, однако, это get/set. Если вы посмотрите на intellisense, который появляется на этом свойстве в Visual Studio, это подтверждается. Вы должны иметь в виду, что RowHeight самого ListView будет иметь приоритет. Поэтому установка значения .Height CellView может показаться недействительным. Это прежде всего предназначено для использования в сочетании с 'ListVIew.HasUnevenRows = true' –

19
  • Если все ячейки имеют одинаковый размер, установленный ListView.RowHeight свойства на самого ListView
  • Если вы хотите установить ViewCell.Height вместо затем установите ListView.HasUnevenRows в true (но она имеет некоторое влияние на производительность)
1

Просто установите Grid's RowDefinitionВысота до Авто, где бы ни была ваша этикетка. Как это:

<ListView ItemsSource="{Binding Gastos}" HasUnevenRows="True" SeparatorVisibility="None"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <ViewCell > 
       <Grid Padding="5"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition/> 
        </Grid.ColumnDefinitions> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="Auto"/> 
        </Grid.RowDefinitions> 
        <Label Text="{Binding Id}" VerticalOptions="Start"/> 
        <Label Grid.Column="1" Text="{Binding Descripcion}" LineBreakMode="WordWrap"/> 
       </Grid> 
      </ViewCell> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
1

Установка height для ViewCell будет работать только тогда, когда ListView.HasUnevenRows или TableView.HasUnevenRows свойство установлено в true.

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