WPF ComboBox vázán s objektem seznam a zobrazení méně odlišné hodnoty u vybraných položek, než je v seznamu položka

0

Otázka

Mám ComboBox:

<ComboBox
    ItemsSource="{Binding imageFormats}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <DockPanel>
                <TextBlock DockPanel.Dock="Left" Text="{Binding Extension}" />
                <TextBlock DockPanel.Dock="Left" Text=" - " />
                <TextBlock DockPanel.Dock="Right" Text="{Binding Description}" />
            </DockPanel>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

Který je vázán na tento seznam: private List<ImageFormatModel> imageFormats = new List<ImageFormatModel>();

public MainWindow()
{
    ComboBoxImages.ItemsSource = imageFormats;
}

Objekt ImageFormatModel skládá se ze dvou řetězců:

public class ImageFormatModel
{
    public string Extension { get; set; }
    public string Description { get; set; }
}

Je možné, že vybrané položky se zobrazí pouze ta rozšíření, ale v rozbalovacím menu se zobrazí obě?

Obě hodnoty by měly být uvedeny v tomto menu:

Dropdown Menu

Ale pokud mám vybrat jednu, pouze rozšíření by měly být viditelné. Ne takhle: enter image description here

c# combobox data-binding list
2021-11-17 14:06:54
1

Nejlepší odpověď

1

Můžete použít Style s DataTrigger k TextBlock prvky, které mají být skryté:

<DataTemplate>
    <DockPanel>
        <DockPanel.Resources>
            <Style x:Key="tbStyle" TargetType="TextBlock">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ComboBoxItem}}" Value="{x:Null}">
                        <Setter Property="Visibility" Value="Collapsed"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DockPanel.Resources>
        <TextBlock DockPanel.Dock="Left" Text="{Binding Extension}" />
        <TextBlock DockPanel.Dock="Left" Text=" - " Style="{StaticResource tbStyle}" />
        <TextBlock DockPanel.Dock="Right" Text="{Binding Description}" Style="{StaticResource tbStyle}" />
    </DockPanel>
</DataTemplate>
2021-11-17 15:24:20

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................