[英]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.