Come visualizzare il testo predefinito "--Select Team -" nella casella combinata durante il caricamento della pagina in WPF?


109

In un'app WPF, nell'app MVP, ho una casella combinata, per la quale visualizzo i dati recuperati dal database. Prima degli elementi aggiunti alla casella combinata, voglio visualizzare il testo predefinito come

" -- Selezionare squadra --"

in modo che al caricamento della pagina venga visualizzato e selezionandolo il testo dovrebbe essere cancellato e gli elementi dovrebbero essere visualizzati.

La selezione dei dati dal DB è in corso. Ho bisogno di visualizzare il testo predefinito fino a quando l'utente seleziona un elemento dalla casella combinata.

Per favore guidami

Risposte:


107

Il modo più semplice che ho trovato per farlo è:

<ComboBox Name="MyComboBox"
 IsEditable="True"
 IsReadOnly="True"
 Text="-- Select Team --" />

Ovviamente dovrai aggiungere le altre opzioni, ma questo è probabilmente il modo più semplice per farlo.

C'è tuttavia uno svantaggio di questo metodo che, sebbene il testo all'interno della casella combinata non sia modificabile, è comunque selezionabile. Tuttavia, data la scarsa qualità e complessità di ogni alternativa che ho trovato fino ad oggi, questa è probabilmente l'opzione migliore in circolazione.


Ottima risposta Chris! Vorrei solo aggiungere Focusable = "True", ma questo è solo un cambiamento estetico.
Slavisa

6
risposta perfetta Chris. Una proprietà può fare una così grande differenza: D
Aster Veigas

4
Focusable="False" IsEditable="True" IsReadOnly="True"
Kamil Lelonek

1
+1. Sfortunatamente non funziona con elementi misti (ad esempio se gli elementi della casella combinata sono immagini).
greenoldman

11
Soluzione semplice e funzionante. I controlli WPF presentano questo tipo di problemi in tutto il framework. Qua e là, ai controlli mancano funzionalità di cui la maggior parte degli sviluppatori avrebbe bisogno. Di conseguenza, gli sviluppatori sprecano il loro tempo alla ricerca di soluzioni, all'acquisto di controlli alternativi di terze parti o all'implementazione di soluzioni alternative ... Il team WPF utilizza i propri controlli anche per i propri sviluppi?
Damn Vegetables

90

Puoi farlo senza alcun codice dietro utilizzando un file IValueConverter.

<Grid>
   <ComboBox
       x:Name="comboBox1"
       ItemsSource="{Binding MyItemSource}"  />
   <TextBlock
       Visibility="{Binding SelectedItem, ElementName=comboBox1, Converter={StaticResource NullToVisibilityConverter}}"
       IsHitTestVisible="False"
       Text="... Select Team ..." />
</Grid>

Qui hai la classe del convertitore che puoi riutilizzare.

public class NullToVisibilityConverter : IValueConverter
{
    #region Implementation of IValueConverter

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value == null ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion
}

E infine, devi dichiarare il tuo convertitore in una sezione delle risorse.

<Converters:NullToVisibilityConverter x:Key="NullToVisibilityConverter" />

Dove Convertitori è il luogo in cui hai posizionato la classe del convertitore. Un esempio è:

xmlns:Converters="clr-namespace:MyProject.Resources.Converters"

La cosa molto bella di questo approccio è l'assenza di ripetizioni di codice nel codice sottostante.


Vorrei usarlo, ma sembra che non sia consentito nei casi in cui la casella combinata è l'intestazione di un datagrid. . . XAML restituisce un errore che indica che l'intestazione è già definita (o forse non può essere definita più di una volta). Qualche idea? Sto pensando solo di utilizzare un'opzione di valore nullo, che consentirà quindi un ripristino selezionandolo, ma sembra un po 'sciatto.
Paul Gibson

1
Uno dei motivi principali per cui questa è una soluzione eccellente è perché quasi tutti i progetti WPF associati a dati utilizzano un NullToVisibilityConverter, quindi è già presente per la maggior parte del tempo - tanto vale usarlo!
tpartee

2
In realtà puoi usare a DataTriggerper evitare anche il codice del convertitore qui :)
Billy ONeal

49

Mi piace la risposta di Tri Q, ma quei convertitori di valore sono un problema da usare. PaulB lo ha fatto con un gestore di eventi, ma anche questo non è necessario. Ecco una soluzione XAML pura:

<ContentControl Content="{Binding YourChoices}">
    <ContentControl.ContentTemplate>
        <DataTemplate>
            <Grid>
                <ComboBox x:Name="cb" ItemsSource="{Binding}"/>
                <TextBlock x:Name="tb" Text="Select Something" IsHitTestVisible="False" Visibility="Hidden"/>
            </Grid>
            <DataTemplate.Triggers>
                <Trigger SourceName="cb" Property="SelectedItem" Value="{x:Null}">
                    <Setter TargetName="tb" Property="Visibility" Value="Visible"/>
                </Trigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </ContentControl.ContentTemplate> 
</ContentControl>

33

Nessuno ha detto che una soluzione xaml pura debba essere complicata. Eccone uno semplice, con 1 trigger di dati nella casella di testo. Margine e posizione come desiderato

<Grid>
    <ComboBox x:Name="mybox" ItemsSource="{Binding}"/>
    <TextBlock Text="Select Something" IsHitTestVisible="False">
           <TextBlock.Style>
                <Style TargetType="TextBlock">
                      <Setter Property="Visibility" Value="Hidden"/>
                      <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=mybox,Path=SelectedItem}" Value="{x:Null}">
                                  <Setter Property="Visibility" Value="Visible"/>
                             </DataTrigger>
                      </Style.Triggers>
                </Style>
           </TextBlock.Style>
     </TextBlock>
</Grid>

5
Avevo bisogno di spostare "Visibility =" Hidden "nel trigger di dati. Quindi ha funzionato come previsto. Sicuramente l'approccio più diretto che ho visto. Per la riusabilità, ho spostato lo stile in una risorsa
Mitch

La risposta di @Mitch IceForce non funziona per me, cosa hai cambiato per farlo funzionare?
Chris

1
@ Chris Penso che intendesse aggiungere <Setter Property="Visibility" Value="Hidden"/>al di fuori del trigger (all'interno dello stile) e rimuovere Visibility="Hidden"dall'elemento del blocco di testo effettivo
Reinstate Monica Please

@ Mitch, come si sposta lo stile Textblock in una risorsa da riutilizzare se ElementName nel DataTrigger punta a un oggetto specifico (mybox)? C'è un modo per specificare quel nome in modo generico?
CrApHeR

24

Situato IsEditable="True"sulla ComboBoxelemento. Questo visualizzerà la Textproprietà del file ComboBox.


2
Questa è la soluzione più semplice dell'intero lotto.
Sergey Koulikov

6
tuttavia cambia l'aspetto del controllo
simonalexander2005

16

Non so se è supportato direttamente, ma potresti sovrapporre la combinazione con un'etichetta e impostarla su nascosto se la selezione non è nulla.

per esempio.

<Grid>
   <ComboBox Text="Test" Height="23" SelectionChanged="comboBox1_SelectionChanged" Name="comboBox1" VerticalAlignment="Top" ItemsSource="{Binding Source=ABCD}"  />
   <TextBlock IsHitTestVisible="False" Margin="10,5,0,0" Name="txtSelectTeam" Foreground="Gray" Text="Select Team ..."></TextBlock>
</Grid>

Quindi nella selezione è cambiato gestore ...

private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    txtSelectTeam.Visibility = comboBox1.SelectedItem == null ? Visibility.Visible : Visibility.Hidden;
}

1
Invece di creare un gestore SelectionChanged, la visibilità di TextBlock potrebbe essere impostata in XAML.
aliceraunsbaek

6

Sulla base della risposta di IceForge ho preparato una soluzione riutilizzabile:

stile xaml:

<Style x:Key="ComboBoxSelectOverlay" TargetType="TextBlock">
    <Setter Property="Grid.ZIndex" Value="10"/>
    <Setter Property="Foreground" Value="{x:Static SystemColors.GrayTextBrush}"/>
    <Setter Property="Margin" Value="6,4,10,0"/>
    <Setter Property="IsHitTestVisible" Value="False"/>
    <Setter Property="Visibility" Value="Hidden"/>
    <Style.Triggers>
        <DataTrigger Binding="{Binding}" Value="{x:Null}">
            <Setter Property="Visibility" Value="Visible"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

esempio di utilizzo:

<Grid>
     <ComboBox x:Name="cmb"
               ItemsSource="{Binding Teams}" 
               SelectedItem="{Binding SelectedTeam}"/>
     <TextBlock DataContext="{Binding ElementName=cmb,Path=SelectedItem}"
               Text=" -- Select Team --" 
               Style="{StaticResource ComboBoxSelectOverlay}"/>
</Grid>

Bello. L'ho ampliato legando il DataContext di TextBlock utilizzando una sorgente relativa per evitare di dover impostare il nome. Vedi il prossimo commento per Markup (il codice nei commenti di SO sembra brutto)
Sascha

<TextBlock DataContext = "{Binding Path = Children [0] .SelectedItem, RelativeSource = {RelativeSource AncestorType = Grid}}" Text = "- Select Project -" Style = "{StaticResource ComboBoxSelectOverlay}" />
Sascha

4

Non l'ho provato con le caselle combinate ma ha funzionato per me con altri controlli ...

post sul blog ageektrapped

Usa lo strato decorativo qui per visualizzare una filigrana.


Ho appena scaricato e provato questo codice. Sembra funzionare come pubblicizzato. Ti permette di decorare la tua combinazione con una semplice proprietà allegata contenente la tua filigrana. Funziona anche per altri controlli. È un approccio molto migliore rispetto a qualsiasi altra risposta a questa domanda.
Ian Oakes

Roba buona, non solo risolve il problema ComboBox, ma ora posso sbarazzarmi dell'assembly WPF Tools e usarlo anche sui miei TextBoxes invece del controllo WatermarkedTextBox, così pieno di vittorie :) - oh btw è A Geek Trapped no Trappola concordata!
dain

2

La soluzione di HappyNomad è stata molto buona e mi ha aiutato ad arrivare a questa soluzione leggermente diversa.

<ComboBox x:Name="ComboBoxUploadProject" 
    Grid.Row="2"
    Width="200" 
    Height="23"                           
    Margin="64,0,0,0"
    ItemsSource="{Binding projectList}"
    SelectedValue ="{Binding projectSelect}" 
    DisplayMemberPath="projectName"
    SelectedValuePath="projectId"
    >
    <ComboBox.Template>
        <ControlTemplate TargetType="ComboBox">
            <Grid>
                <ComboBox x:Name="cb" 
                    DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" 
                    ItemsSource="{Binding ItemsSource, RelativeSource={RelativeSource TemplatedParent}}"
                    SelectedValue ="{Binding SelectedValue, RelativeSource={RelativeSource TemplatedParent}}" 
                    DisplayMemberPath="projectName"
                    SelectedValuePath="projectId"
                    />
                <TextBlock x:Name="tb" Text="Select Item..." Margin="3,3,0,0" IsHitTestVisible="False" Visibility="Hidden"/>
            </Grid>
            <ControlTemplate.Triggers>
                <Trigger SourceName="cb" Property="SelectedItem" Value="{x:Null}">
                    <Setter TargetName="tb" Property="Visibility" Value="Visible"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </ComboBox.Template>
</ComboBox>

2

Il modo più semplice è usare CompositeCollection per unire testo e dati predefiniti dal database direttamente in ComboBox, ad es

    <ComboBox x:Name="SelectTeamComboBox" SelectedIndex="0">
        <ComboBox.ItemsSource>
            <CompositeCollection>
                <ComboBoxItem Visibility="Collapsed">-- Select Team --</ComboBoxItem>
                <CollectionContainer Collection="{Binding Source={StaticResource ResourceKey=MyComboOptions}}"/>
            </CompositeCollection>
        </ComboBox.ItemsSource>
    </ComboBox>

E in Resources definire StaticResource per associare le opzioni ComboBox a DataContext, perché l'associazione diretta in CollectionContainer non funziona correttamente.

<Window.Resources>
    <CollectionViewSource Source="{Binding}" x:Key="MyComboOptions" />
</Window.Resources>

In questo modo puoi definire le tue opzioni ComboBox solo in xaml es

   <ComboBox x:Name="SelectTeamComboBox" SelectedIndex="0">
        <ComboBox.ItemsSource>
            <CompositeCollection>
                <ComboBoxItem Visibility="Collapsed">-- Select Team --</ComboBoxItem>
                <ComboBoxItem >Option 1</ComboBoxItem>
                <ComboBoxItem >Option 2</ComboBoxItem>
            </CompositeCollection>
        </ComboBox.ItemsSource>
    </ComboBox>

1

Consiglierei quanto segue:

Definisci un comportamento

public static class ComboBoxBehaviors
{
    public static readonly DependencyProperty DefaultTextProperty =
        DependencyProperty.RegisterAttached("DefaultText", typeof(String), typeof(ComboBox), new PropertyMetadata(null));

    public static String GetDefaultText(DependencyObject obj)
    {
        return (String)obj.GetValue(DefaultTextProperty);
    }

    public static void SetDefaultText(DependencyObject obj, String value)
    {
        var combo = (ComboBox)obj;

        RefreshDefaultText(combo, value);

        combo.SelectionChanged += (sender, _) => RefreshDefaultText((ComboBox)sender, GetDefaultText((ComboBox)sender));

        obj.SetValue(DefaultTextProperty, value);
    }

    static void RefreshDefaultText(ComboBox combo, string text)
    {
        // if item is selected and DefaultText is set
        if (combo.SelectedIndex == -1 && !String.IsNullOrEmpty(text))
        {
            // Show DefaultText
            var visual = new TextBlock()
            {
                FontStyle = FontStyles.Italic,
                Text = text,
                Foreground = Brushes.Gray
            };

            combo.Background = new VisualBrush(visual)
            {
                Stretch = Stretch.None,
                AlignmentX = AlignmentX.Left,
                AlignmentY = AlignmentY.Center,
                Transform = new TranslateTransform(3, 0)
            };
        }
        else
        {
            // Hide DefaultText
            combo.Background = null;
        }
    }
}

Usa il comportamento

<ComboBox Name="cmb" Margin="72,121,0,0" VerticalAlignment="Top"
          local:ComboBoxBehaviors.DefaultText="-- Select Team --"/>

Funziona come un fascino per una singola casella combinata. Ma quando lo uso con più di 1 combo, mi dà un errore (ma si compila e funziona bene) "Proprietà 'DefaultText' già registrata da 'ComboBox'". Ho menzionato la correzione nel mio blog.
Romesh D. Niriella

Grazie per averlo fatto notare. Non sono riuscito a produrre questo errore sul mio computer. Tuttavia, sono d'accordo che typeof (ComboBoxBehaviors) debba essere passato nel terzo parametro di RegisterAttached invece di typeof (ComboBox).
Usman Zafar

Sebbene questo post sia un po 'vecchio, non vedo come possa funzionare. Il bg della combo viene impostato tramite trigger con condizioni multiple. Prova a posizionare una combo da sola su una griglia e imposta manualmente bg su "rosso". Non ha alcun effetto sull'area in cui desideri che appaia una filigrana. Può influenzare solo il bg dietro il pannello a discesa. Una soluzione migliore è copiare il modello di controllo della casella combinata e aggiungere alcuni trigger e stili per dipingere un pennello visivo costituito da un blocco di testo sullo sfondo del bordo.
Newclique

1

La risposta di IceForge è stata abbastanza vicina, ed è AFAIK la soluzione più semplice a questo problema. Ma mancava qualcosa, poiché non funzionava (almeno per me, non visualizza mai il testo).

Alla fine, non puoi semplicemente impostare la proprietà "Visibility" di TextBlock su "Hidden" in modo che venga nascosta quando l'elemento selezionato della casella combinata non è nullo; devi impostarlo in questo modo per impostazione predefinita (poiché non puoi controllare non null nei trigger , utilizzando un Setter in XAML nello stesso posto del Triggers.

Ecco la soluzione effettiva basata sul suo, il Setter mancante posizionato appena prima dei Trigger:

<ComboBox x:Name="combo"/>
<TextBlock Text="--Select Team--" IsHitTestVisible="False">
    <TextBlock.Style>
        <Style TargetType="TextBlock">

            <Style.Setters>
                <Setter Property="Visibility" Value="Hidden"/>
            </Style.Setters>

            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=combo,Path=SelectedItem}" Value="{x:Null}">
                    <Setter Property="Visibility" Value="Visible"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>

1

EDIT: Per i commenti di seguito, questa non è una soluzione. Non sono sicuro di come funzionasse e non posso controllare quel progetto.

È ora di aggiornare questa risposta per l'ultimo XAML.

Trovando questa domanda SO alla ricerca di una soluzione a questa domanda, ho quindi scoperto che la specifica XAML aggiornata ha una soluzione semplice.

Un attributo denominato "Segnaposto" è ora disponibile per eseguire questa operazione. È così semplice (in Visual Studio 2015):

<ComboBox x:Name="Selection" PlaceholderText="Select...">
    <x:String>Item 1</x:String>
    <x:String>Item 2</x:String>
    <x:String>Item 3</x:String>
</ComboBox>

Ho usato questa soluzione: l'elettore negativo si preoccupa di elaborare? Certo, non sono un esperto di XAML, ma ha funzionato.
Robb Sadler

1
Anche se non sono un votante in basso, immagino che tu sia stato votato perché non ci sono PlaceholderTextproprietà nella System.Windows.ComboBoxclasse . Questa è una domanda su WPF, non su WinForms.
Sheridan

Amico, questo è strano: so che stavo lavorando a un'app XAML e so di averlo appena scoperto e di averlo visto funzionare. Forse un'estensione è stata inclusa nel progetto? IDK - Da allora ho cercato e di sicuro non ci sono segnaposto in ComboBox. Non riesco a tornare al progetto su cui stavo lavorando - vecchio cliente. ugh.
Robb Sadler

2
Non hai torto, ma non è per WPF. UWP ComboBox ha questo, consulta questa pagina: msdn.microsoft.com/en-us/library/windows/apps/...
laishiekai

0

Non è la migliore pratica ... ma funziona bene ...

<ComboBox GotFocus="Focused"  x:Name="combobox1" HorizontalAlignment="Left" Margin="8,29,0,0" VerticalAlignment="Top" Width="128" Height="117"/>

Codice dietro

public partial class MainWindow : Window
{
    bool clearonce = true;
    bool fillonce = true;
    public MainWindow()
    {
        this.InitializeComponent();          
        combobox1.Items.Insert(0, " -- Select Team --");
        combobox1.SelectedIndex = 0;
    }

    private void Focused(object sender, RoutedEventArgs e)
    {
            if(clearonce)
            {
                combobox1.Items.Clear();
                clearonce = false;
            }
            if (fillonce)
            {
              //fill the combobox items here 
                for (int i = 0; i < 10; i++)
                {
                    combobox1.Items.Insert(i, i);
                }
                fillonce = false;
            }           
    }
}

0

Credo che una filigrana come menzionato in questo post funzionerebbe bene in questo caso

È necessario un po 'di codice ma puoi riutilizzarlo per qualsiasi casella combinata o casella di testo (e anche per le password), quindi preferisco questo modo


0

Sto usando una classe IsNullConverter nel mio progetto e ha funzionato per me. ecco il codice in c #, creare una cartella denominata Converter e aggiungere questa classe in quella cartella, poiché il trigger utilizzato non supporta il valore per anziché null, e IsNullConverter lo fa

 public class IsNullConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return (value == null);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new InvalidOperationException("IsNullConverter can only be used OneWay.");
    }
}

aggiungi lo spazio dei nomi nel file xaml in questo modo.

xmlns:Converters="clr-namespace:TymeSheet.Converter"

si intende

xmlns:Converters="clr-namespace:YourProjectName.Converter"

usa questa riga sotto le risorse per renderlo disponibile tramite il codice xaml

<Converters:IsNullConverter x:Key="isNullConverter" />

ecco il codice xaml, ho usato qui il trigger così ogni volta che un elemento viene selezionato nella casella combinata la visibilità del tuo testo diventa falsa.

<TextBlock Text="Select Project" IsHitTestVisible="False" FontFamily="/TimeSheet;component/Resources/#Open Sans" FontSize="14" Canvas.Right="191" Canvas.Top="22">
                        <TextBlock.Resources>
                            <Converters:IsNullConverter x:Key="isNullConverter"/>
                        </TextBlock.Resources>
                        <TextBlock.Style>
                            <Style TargetType="TextBlock">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding ElementName=ProjectComboBox,Path=SelectedItem,Converter={StaticResource isNullConverter}}" Value="False">
                                        <Setter Property="Visibility" Value="Hidden"/>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </TextBlock.Style>
                    </TextBlock>

0

// Codice XAML

// Codice ViewModel

    private CategoryModel _SelectedCategory;
    public CategoryModel SelectedCategory
    {
        get { return _SelectedCategory; }
        set
        {
            _SelectedCategory = value;
            OnPropertyChanged("SelectedCategory");
        }
    }

    private ObservableCollection<CategoryModel> _Categories;
    public ObservableCollection<CategoryModel> Categories
    {
        get { return _Categories; }
        set
        {
            _Categories = value;
            _Categories.Insert(0, new CategoryModel()
            {
                CategoryId = 0,
                CategoryName = " -- Select Category -- "
            });
            SelectedCategory = _Categories[0];
            OnPropertyChanged("Categories");

        }
    }

0

Un po 'tardi ma ..

Un modo più semplice sarebbe aggiungere un elemento di dati fittizio all'elenco con il parametro IsDummy = true e assicurarsi che non sia HitTestVisable e che la sua altezza sia 1 pixel (utilizzando un convertitore) in modo che non venga visualizzato.

Basta registrarsi a SelectionChanged e in esso impostare l'indice sull'indice dell'elemento fittizio.

Funziona come un fascino e in questo modo non si scherza con lo stile ei colori del ComboBox o del tema dell'applicazione.


0
InitializeComponent()
yourcombobox.text=" -- Select Team --";

Il codice sopra mostra il modo più semplice per ottenerlo. Dopo il caricamento della finestra, dichiarare il testo della casella combinata, utilizzando la proprietà .Text della casella combinata. Questo può essere esteso anche a DatePicker, Textbox e altri controlli.


0

L'ho fatto prima di associare la casella combinata con i dati del database in codebehind in questo modo -

Combobox.Items.Add("-- Select Team --");
Combobox.SelectedIndex = 0;

1
Questo aggiunge solo il testo come opzione nel menu a discesa. Non era quello che chiedeva l'OP.
Dean Friedland

si tratta di aggiungere del testo predefinito e l'ho fatto in questo modo
Atiq Baqi

0
  1. Metti un'etichetta sopra la casella combinata.

  2. Associa il contenuto dell'etichetta alla proprietà Text della casella combinata.

  3. Imposta l'opacità della casella combinata su zero, Opacità = 0.

  4. Scrivi il testo predefinito nella proprietà Text della casella combinata

          <ComboBox Name="cb"
            Text="--Select Team--" Opacity="0" 
            Height="40" Width="140" >
             <ComboBoxItem Content="Manchester United" />
             <ComboBoxItem Content="Lester" />
         </ComboBox>
     </Grid>

-2

Impostare solo l'attributo IsEditable su true

<ComboBox Name="comboBox1"            
          Text="--Select Team--"
          IsEditable="true"  <---- that's all!
          IsReadOnly="true"/>

-3

So che questo è semi vecchio ma che dire in questo modo:

<DataTemplate x:Key="italComboWM">
    <TextBlock FontSize="11" FontFamily="Segoe UI" FontStyle="Italic" Text="--Select an item--" />
</DataTemplate>

<ComboBox EmptySelectionBoxTemplate="{StaticResource italComboWM}" />

2
ComboBoxnon ha EmptySelectionBoxTemplateproprietà.
Novitchi S
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.