2017-06-23 15 views
1

ListViewの高さがListViewを含む行の高さ、つまりListViewの親であることを示す構文を理解できません。 これはユーザーコントロールのxamlです。私は働くと思っていたものを入れましたが、しません。私はそれをそこに残して、私が何をしようとしているかを見てみましょう。ListViewの高さをXAMLのcontining行の高さに設定するには

<ListView Grid.Row="1" 
Height="{Binding Path=Height,RelativeSource={RelativeSource AncestorType=Grid.Row}}" 
ItemsSource="{Binding Folders}" 
ItemTemplate="{StaticResource FolderListTemplate}" 
SelectionMode="Single" 
SelectedIndex="1" 
VerticalAlignment="Stretch" 
HorizontalAlignment="Stretch" 
Margin="3" 
ScrollViewer.VerticalScrollBarVisibility="Visible" 
ScrollViewer.CanContentScroll="True" 
/> 

おかげで、ちょうどオートRowDefinition高さを設定

+0

ませんREPROに役立ちます。 https://i.stack.imgur.com/TKZAW.png – Will

+0

「AncestorType = Grid.Row」は意味を持ちません(Grid.Rowはタイプではないため)、Heightの割り当てを削除するだけです。グリッドはデフォルトで自動的に子要素のサイズを変更します。 Gridクラス、特にそのRowDefinitionsとColumnDefinitionsプロパティに関するオンラインドキュメントを読んでください。 – Clemens

+0

あなたの返事をありがとう、ウィル。あなたの画像は、私がheightプロパティを追加する前のものを示しています。行の定義には、行0が自動に設定され、行1が*に設定されています。グリッドに名前を付け、Heightプロパティを要素のActualHeightに設定しました。問題は、listViewが可視領域の下にあることです。 – ScottinTexas

答えて

1

、ここに私のXAMLです:

<Grid Background="DimGray"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="50"/> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="50"/> 
     </Grid.RowDefinitions> 
     <StackPanel Background="CornflowerBlue"/> 
     <ListView Grid.Row="1" 
        x:Name="ListView" 
        ItemsSource="{Binding Items}" 
        SelectionMode="Single" 
        SelectedIndex="1" 
        VerticalAlignment="Stretch" 
        HorizontalAlignment="Stretch" 
        Margin="3" 
        ScrollViewer.VerticalScrollBarVisibility="Visible" 
        ScrollViewer.CanContentScroll="True"/> 

     <StackPanel Grid.Row="2" Background="CornflowerBlue"/> 
    </Grid> 

そして出力: enter image description here

あなたが使用している場合星の表記法、それから行が利用可能なhを取るつもりですあなたが与えた星の値の8つ、この場合は1 *これは*****と同じです。 私はあなたとスターの値を使用するように変更する場合:

<Grid.RowDefinitions> 
      <RowDefinition Height="50"/> 
      <RowDefinition Height="*"/> 
      <RowDefinition Height="50"/> 
     </Grid.RowDefinitions> 

出力を:

enter image description here

希望これは

+0

ありがとうございました。私は元の質問に十分なコードを入れていませんでした。私が持っていれば、問題は私の元のリストビュー(高さのプロパティが設定されていない)ではなく、行の最初の項目であったHeaderedContentControlであったことを誰もが見ていたでしょう。私はちょうど私の行を間違って設定し、それは問題を作成しました。私のリストが正しく適合しなかったとき、私はより大きな絵ではなくそれを見ていました。クラッタを減らすためにヘッダーコンテンツコントロールを削除したとき、私のリストビュー自体が修正されました。私はこれを答えとしてマークしました。将来的に誰かにとってより有用になるからです。 – ScottinTexas

関連する問題