WPF - 加载时绑定网格宽度

时间:2015-09-11 10:13:56

标签: c# wpf xaml

我的数据模板中的网格如下所示:

<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 Margin="3" Name="gContainer">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"></ColumnDefinition>
        <ColumnDefinition Width="4*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

当我通过移动GridSplitter更改列宽时,嵌套网格会调整大小。但是,当程序刚刚启动时,嵌套网格宽度与父列宽度不同。 如何在程序刚刚启动时设置正确的嵌套网格宽度?

P.S。 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;
    }
}

0 个答案:

没有答案