G'day!Czy można wyświetlić tekst alternatywny WPF ComboBox, gdy jego wybór jest zerowy?
Chcę, aby mój WPF ComboBox
wyświetlał jakiś tekst alternatywny, gdy jego wybór związany z danymi to null
.
Widok modelu ma oczekiwanych właściwości:
public ThingoSelectionViewModel : INotifyPropertyChanged {
public ThingoSelectionViewModel(IProvideThingos) {
this.Thingos = IProvideThingos.GetThingos();
}
public ObservableCollection<Thingo> Thingos { get; set; }
public Thingo SelectedThingo {
get { return this.selectedThingo; }
set { // set this.selectedThingo and raise the property change notification
}
// ...
}
się pogląd XAML wiążących Widok modelu oczekiwanym sposób:
<ComboBox x:Name="ComboboxDrive" SelectedItem="{Binding Path=SelectedThingo}"
IsEditable="false" HorizontalAlignment="Left" MinWidth="100"
IsReadOnly="false" Style="{StaticResource ComboboxStyle}"
Grid.Column="1" Grid.Row="1" Margin="5" SelectedIndex="0">
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem IsEnabled="False">Select a thingo</ComboBoxItem>
<CollectionContainer
Collection="{Binding Source={StaticResource Thingos}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
ComboBoxItem
wciśnięta do górnej jest sposobem dostać dodatkowy przedmiot na górze. To czysty chrom: model widoku pozostaje czysty i prosty. Jest tylko jeden problem: użytkownicy chcą wyświetlać "Wybierz coś", gdy wybór ComboBox "jest zerowy".
Użytkownicy robią , a nie chcą, aby domyślnie wybrano element. Chcą zobaczyć komunikat z informacją, aby wybrać coś.
chciałbym uniknąć konieczności zanieczyszczają ViewModel z klasą ThingoWrapper
z metodą ToString
powrocie „Wybierz thingo” jeśli jego .ActualThingo
właściwość ma wartość null, owijając każdą Thingo
jak zapełnić Thingos
, i dowiedzieć się, w pewien sposób uniemożliwić użytkownikowi wybranie wartości nulled Thingo
.
Czy istnieje sposób wyświetlania "Wybierz coś" w granicach ComboBox
'przy użyciu czystego XAML lub czystego XAML i kilku linii kodu w klasie kodu z widoku?
FWIW: skończyło się na wdrażaniu ThingoWrapper, modyfikując ThingoSelectionViewModel poradzić sobie z wyborem zawiniętego wartości zerowej, a znalezienie sposobów, aby automatycznie wybrać obiekty Whatsy i Fadoozamy, więc nie musiałem ich również owijać. –