【问题标题】:Silverlight DataGrid not stretching to accommodate all items in data source?Silverlight DataGrid 没有拉伸以容纳数据源中的所有项目?
【发布时间】:2011-02-14 03:45:36
【问题描述】:

我在让 Silverlight DataGrid 拉伸以容纳其数据源中的所有项目时遇到问题。 我有一个包含两个 DataGrids 的网格。 我尝试在 Grid 和 DataGrids 上设置 height=Auto。 我尝试在 Grid 和 DataGrids 上设置 Horizo​​ntalContentAlignment="Stretch"。 对象标签的高度=“100%” 我在网格的 RowDefinitions 上设置了 Height="*"

任何帮助将不胜感激!

这是代码清单:

<UserControl x:Class="TimeSheet.SilverLight.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" 
mc:Ignorable="d"> 
<Grid x:Name="LayoutRoot" Height="Auto" ShowGridLines="True" HorizontalAlignment="Stretch" >
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <local:DataGrid BorderThickness="5" HorizontalContentAlignment="Stretch"  AutoGenerateColumns="False"  VerticalAlignment="Top" x:Name="NonProjectGrid" Grid.Row="0">
        <local:DataGrid.Columns>
            <local:DataGridTextColumn Header="Activity" Binding="{Binding TaskName}" />
            <local:DataGridTextColumn Header="Monday" Binding="{Binding Monday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Tuesday" Binding="{Binding Tuesday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Wednesday" Binding="{Binding Wednesday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Thursday" Binding="{Binding Thursday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Friday" Binding="{Binding Friday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Saturday" Binding="{Binding Saturday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Sunday" Binding="{Binding Sunday, Mode=TwoWay}" />
        </local:DataGrid.Columns>
    </local:DataGrid>
    <local:DataGrid BorderThickness="5" HorizontalContentAlignment="Stretch" AutoGenerateColumns="False"  VerticalAlignment="Top" x:Name="ProjectGrid" Grid.Row="2">
        <local:DataGrid.Columns>
            <local:DataGridTextColumn Header="Bug Number" Binding="{Binding BugNo}" />
            <local:DataGridTextColumn Header="Activity" Binding="{Binding TaskName}" />
            <local:DataGridTextColumn Header="Monday" Binding="{Binding Monday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Tuesday" Binding="{Binding Tuesday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Wednesday" Binding="{Binding Wednesday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Thursday" Binding="{Binding Thursday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Friday" Binding="{Binding Friday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Saturday" Binding="{Binding Saturday, Mode=TwoWay}" />
            <local:DataGridTextColumn Header="Sunday" Binding="{Binding Sunday, Mode=TwoWay}" />
        </local:DataGrid.Columns>
    </local:DataGrid>
    <Button Name="AddBugBtn" Width="125" Height="25" Content="Add From Bugzilla" Click="AddBug_Click" Grid.Row="3" HorizontalAlignment="Right"></Button>
    <Button Name="SaveBtn" Width="125" Height="25" Content="Save" Click="Save_Click" Grid.Row="3" HorizontalAlignment="Left"></Button>
</Grid>

【问题讨论】:

  • 不清楚哪个方向不适应?水平的还是垂直的?

标签: silverlight datagrid grid stretch


【解决方案1】:

您似乎有过多的 RowDefinitions,您没有为 Grid.Row="1" 分配任何内容。也许您应该消除这一行并调整元素上的 Grid.Row 分配。我还建议您将最后一个 RowDefinition 的高度设置为 Auto 并从外部网格中删除 Height="Auto"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2011-08-05
    • 2013-03-02
    • 1970-01-01
    相关资源
    最近更新 更多