簡體   English   中英

WPF-綁定網格寬度

[英]WPF - Binding grid width on load

我在數據模板中有網格看起來像這樣:

<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更改列寬時,嵌套的網格將調整大小。 但是,當程序剛開始時,嵌套的網格寬度與父列的寬度不同。 程序剛啟動時如何設置正確的嵌套網格寬度?

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