我想构建一个简单的分层Combobox。所以我构建了一个转换器,它在文本之前添加了许多空格,工作正常。但是,当选择一个Item时,我想显示没有空格的SelectedItem的文本。
xaml代码:
<ComboBox ItemsSource="{Binding KategorieAuswahl}" SelectedItem="{Binding Kategorie, Mode=TwoWay}" Grid.Column="1" Grid.Row="2" >
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource iFc}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
c#转换器:
class vcIndentForComboBox : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value.GetType() == typeof(Kategorie))
{
Kategorie k = (Kategorie)value;
return string.Join("", Enumerable.Repeat(" ", (k.Ebene -1)*4)) + k.Bezeichnung;
}
return "";
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
如何在选择项目时删除文本中的空格,但是将它们保留在下拉列表中以显示层次结构?图中的红色方块?是否有类似SelectedItemTemplate的东西?