WPF 滚动视图(ScrollViewer)下的DataGrid自动宽度的问题-转换器
转换器:
public class PercentConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return 0;
var valor = (double)(double.Parse(value.ToString()) * 0.90); //Window宽度90%
return valor;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
var valor = (double)(double.Parse(value.ToString()) / 0.90);
return valor;
}
}
xaml:
<!--主体-->
<Grid x:Name="grid" Grid.Row="1" Margin="10" Background="#01ffffff" MinWidth="200">
<Grid.Resources>
<local:PercentConverter x:Key="ItemSelectedConverter"/>
</Grid.Resources>
<!--DataGrid的宽度为UserControl的90%-->
<DataGrid Width="{Binding ActualWidth,ElementName=window, Converter={StaticResource ItemSelectedConverter}}" x:Name="TDataGrid" SelectionUnit="FullRow" IsReadOnly="True" AutoGenerateColumns="False"
ItemsSource="{Binding SpotColorGroup,Mode=TwoWay}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding No}" Header="序号" Width="180"/>
<DataGridTextColumn Binding="{Binding Name}" Header="专色库名称" Width="*"/>
<DataGridTextColumn Binding="{Binding Number}" Header="专色数" Width="*"/>
</DataGrid.Columns>
</DataGrid>
</Grid>