Прямо сейчас у меня есть комбинированный список с несколькими различными записями, и когда он выбран, я хочу сетку данных, я должен изменить ширину столбца в соответствии с выбранным текстом из комбинированного списка. До сих пор я пытался использовать конвертер в стиле под моими ресурсами окна, однако ширина моих столбцов не изменяется в соответствии с введенным текстом, а вместо этого устанавливается на Auto. Вот мой конвертер:
public class BindingWidthConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var Notation = value as string;
if (Notation == null) return 26;
switch (Notation)
{
case "size 1":
return 26;
case "size 2":
return 40;
case "size 3":
return 45;
case "size 4":
return 50;
case "size 5":
return 60;
default:
return 26;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
А вот как это определяется в моем окне XAML.resource:
<Style x:Key="ElementStyle" TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Width" Value="{Binding NotationType, UpdateSourceTrigger=PropertyChanged, IsAsync=True, Mode=TwoWay, Converter={StaticResource WidthConv}, ConverterParameter=0}"/>
</Style>
Это затем вводится в мою часть DataGrid.Column:
<DataGridTextColumn Header="0" Binding="{Binding DataSpace, UpdateSourceTrigger=PropertyChanged, IsAsync=True, Converter={StaticResource DataConv}, ConverterParameter=0}"
ElementStyle="{StaticResource ElementStyle}"
CellStyle="{StaticResource CellStyle0}"
HeaderStyle="{StaticResource HeaderStyle}"/>
Может кто-нибудь помочь с этим?