2017-05-17 27 views
0

私はListViewであり、その下にはStackLayoutがあります。私はListViewの高さを、XAMLの使用だけで多くの行が(StackLayoutのコマンドを使用して)追加されるにつれて大きくするようにしています。何が起こっていることはListViewの高さである。ここに私のコードですが大きすぎて、ページがすべての方法ダウンListViewの高さを動的にするには?

StackLayoutとスクロールを終わる:

<StackLayout Orientation="Vertical"> 
    <BoxView HorizontalOptions="FillAndExpand" HeightRequest="10" Color="Transparent/> 
    <StackLayout> 
      <Label Style="{StaticResource AXASOL_Label_H1}" TextColor="White" Text="Do you have Dependents?" HorizontalOptions="Center"/> 
    </StackLayout> 
    <ListView> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <ViewCell> 
        </ViewCell> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
    </ListView> 
    <StackLayout Orientation="Horizontal" HorizontalOptions="Center"> 
    </StackLayout> 
</StackLayout> 

答えて

2

私が代わりにStackLayoutGridを使用することをお勧めします。 ListViewを含むにはHeight="*"が設定されていることを確認してください。

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <Label Grid.Row="0" Content="Do you have Dependents?" /> 

    <ListView Grid.Row="1" ItemsSource="{Binding Items}"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Name}" /> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
    <Button Grid.Row="2" Content="Click" Click="ButtonBase_OnClick"></Button> 
</Grid> 

分離コードは:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
    InitializeComponent(); 
    DataContext = this; 
    Items = new ObservableCollection<Item>(); 
    Items.Add(new Item("bla")); 
    Items.Add(new Item("blub")); 
    Items.Add(new Item("blubber")); 
} 

    public ObservableCollection<Item> Items { get; set; } 

    private void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
    { 
    Items.Add(new Item("test")); 
    } 
} 

public class Item 
{ 
    public Item(string name) 
    { 
    Name = name; 
    } 
    public string Name { get; set; } 
} 

これはHeight="Auto"を持つすべてのRowsが自分のコンテンツニーズとすべての残りのスペースを埋めるだろうListViewを含むと同じくらいのスペースを取るようになります。

+0

私はこれを試しましたが、リストが大きくなるにつれて最後の行は落ちません。 –

+0

@AlfieMcNarutoad私の投稿を編集しました。ボタンをクリックすると、リストビューに新しい項目が追加されます。私は最後の行があなたが何を意味するのか理解できません。あなたは新しいアイテムを追加するときに何をしたいですか? – user3292642

+0

@ AlfieMcNarutoad ListViewを含む行の高さを 'Auto'に設定できますか?これで問題は解決しますか? – user3292642

関連する問題