c# - 增加 Silverlight DataGrid 中的列宽以填充整个 DG 宽度

标签 c# silverlight datagrid width

我有一个绑定(bind)到 SQL 表的 DataGrid 控件。

XAML 代码是:

<data:DataGrid x:Name="dg_sql_data" 
                       Grid.Row="1" 
                       Visibility="Collapsed" 
                       Height="auto" 
                       Margin="0,5,5,5"
                       AutoGenerateColumns="false"
                       AlternatingRowBackground="Aqua"
                       Opacity="80"
                       >
    <data:DataGrid.Columns>
        <data:DataGridTextColumn Header="Latitude" Binding="{Binding lat}" />
        <data:DataGridTextColumn Header="Longitude" Binding="{Binding long}" />
        <data:DataGridTextColumn Header="Time" Binding="{Binding time}" />
    </data:DataGrid.Columns>
</data:DataGrid>

是否可以增加单列的大小以填充数据网格的完整宽度?

谢谢,
亨里克

编辑: 宽度为“*”的列随 Silverlight SDK 4 一起提供。

最佳答案

解决方法:

    void dg_sql_data_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        DataGrid myDataGrid = (DataGrid)sender;
        // Do not change column size if Visibility State Changed
        if (myDataGrid.RenderSize.Width != 0)
        {
            double all_columns_sizes = 0.0;
            foreach (DataGridColumn dg_c in myDataGrid.Columns)
            {
                all_columns_sizes += dg_c.ActualWidth;
            }
            // Space available to fill ( -18 Standard vScrollbar)
            double space_available = (myDataGrid.RenderSize.Width - 18) - all_columns_sizes;
            foreach (DataGridColumn dg_c in myDataGrid.Columns)
            {
                dg_c.Width = new DataGridLength(dg_c.ActualWidth + (space_available / myDataGrid.Columns.Count));
            }
        }
    }

关于c# - 增加 Silverlight DataGrid 中的列宽以填充整个 DG 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/894991/

相关文章:

c# - 在 AJAX Accordion 中更新 DataGrid

c# - 将 DataGrid 列绑定(bind)到列表

wpf - 如何知 Prop 有扩展选择模式的DataGrid中的选定项目?

c# - 是否需要对接口(interface)的定义进行单元测试?

c# - Silverlight 组合框空项目高度

c# - 通过 Silverlight 4.0 的 VOIP 功能(最多 5 个用户的实时语音流)?

c# - 如何使用 Silverlight 读取 XPS(固定页面)文件并在 UI 中显示

c# - 'value type that is initialized to all 0' 是什么意思?

c# - 如何在 ASP.NET MVC 6 中为不同的环境注册不同的服务?

c# - 如何在按钮的 Click 事件中调用 KeyDown 事件