【问题标题】:WPF Making the ListView Height the same as the Grid row heightWPF 使 ListView 高度与 Grid 行高相同
【发布时间】:2018-10-04 19:35:50
【问题描述】:

我想将网格中一行的高度数据绑定到我的 ListView 的高度。可悲的是,我无法使 DataBinding 工作。 ListView 在网格内。非常欢迎任何帮助:)

这些是我的 xaml 代码的一些 sn-ps:

<Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto" Name="rowDefenitionOne"/>
</Grid.RowDefinitions>

<ListView ItemsSource="{Binding Data}" Height="{Binding ActualHeight, 
ElementName=rowDefenitionOne}" Grid.Row="1" Grid.Column="0" 
Grid.ColumnSpan="2" Grid.RowSpan="2">
....
</ListView>

【问题讨论】:

  • 如果行是auto 并且ListViewVerticalAlignment=Stretch(默认),那么为什么这不自己处理呢?
  • 这个Grid是只控制在屏幕里的吗?
  • 试试x:Name 而不是Name
  • 是的,window后面的根元素是grid
  • 将名称更改为 x:name 也不起作用

标签: c# wpf windows data-binding


【解决方案1】:

您将行高设置为跟随子项的高度(此处只有一个子项 ListView)。行高将跟随该 ListView 的高度。

使 ListView 高度与 Grid 行高相同

嗯,ListView 高度 与 Grid 行高相同

我猜这不是你要找的。

这样

<Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition/>
</Grid.RowDefinitions>

<ListView ItemsSource="{Binding Data}" Grid.Row="1" Grid.Column="0">
    ....
</ListView>

网格行将采用所有可能的高度,ListView 将遵循该行高。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 2020-06-03
    • 2018-12-07
    相关资源
    最近更新 更多