Я добавил GridImageColumn в свою сетку и добавляю к ней изображение.Кажется, что ширина столбца (когда я устанавливаю ColumnSizer = "Auto") устанавливается в соответствии с длиной URL-адреса, с которого я добавляю изображение, а не с фактическим размером изображения.Если я использую очень короткий URL, ширина столбца также очень мала.
Ожидается ли это?Нужно ли просто явно установить ширину столбца?Я хочу, чтобы столбец автоматически соответствовал ширине самого широкого изображения в столбце.
Вот сетка:
<syncfusion:SfDataGrid x:Name="dataGrid" ItemsSource="{Binding TestItems}" ColumnSizer="Auto">
<syncfusion:SfDataGrid.Columns>
<syncfusion:GridImageColumn
MappingName="TEST"
HeaderText="TEST"
Stretch="None"
TextAlignment="Center"
ValueBinding="{Binding Path=ImagePath, Converter={StaticResource StringToImageConverter}}" />
</syncfusion:SfDataGrid.Columns>
</syncfusion:SfDataGrid>
Вот StringToImageConverter.Он просто выбирает BitmapImage и возвращает его:
class StringToImageConverter : IValueConverter
{
private const string UriPrefix = "https://www.someprefix.com";
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
string imageName = value is string ? UriPrefix + value : string.Empty;
return new BitmapImage(new Uri(imageName, UriKind.RelativeOrAbsolute));
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return null;
}
}
И это выглядит примерно так (изображение имеет ширину 112, а URL довольно длинный, в основном такой же ширины, как столбец нижеснимок экрана):