简体   繁体   English

WPF-绑定网格宽度

[英]WPF - Binding grid width on load

I have Grid in data template looks like this: 我在数据模板中有网格看起来像这样:

<ListView Name="lvJobs" Grid.Row="0" Grid.Column="1" Margin="3">
    <ListView.ItemTemplate>
            <DataTemplate>
                <Border CornerRadius="7" BorderThickness="2" BorderBrush="#DDB20C" Style="{StaticResource BorderStyle}" Padding="10">
                    <Grid Width="{Binding ElementName=gContainer, Path=ColumnDefinitions[1].Width.Value, Converter={StaticResource JobsWidthConverter}}">

Grid width bounded to parent grid: 网格宽度以父网格为界:

<Grid Margin="3" Name="gContainer">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"></ColumnDefinition>
        <ColumnDefinition Width="4*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

When I change column width by moving GridSplitter, nested grid resize. 当我通过移动GridSplitter更改列宽时,嵌套的网格将调整大小。 However when program just started nested grid width didn't same parent column width. 但是,当程序刚开始时,嵌套的网格宽度与父列的宽度不同。 How can I set correct nested grid width when program just started? 程序刚启动时如何设置正确的嵌套网格宽度?

PS JobWidthConverter is simple: PS JobWidthConverter很简单:

class JobsWidthConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        double d = (double) value;
        return d - 80;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }
}

您应该将网格的Width绑定到ActualWidth而不是Path = ColumnDefinitions [1] .Width.Value

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM