Ce n'est pas mon expérience. Je le XAML suivant:
<TextBlock Text="{Binding ElementName=_cbx, Path=SelectedItem}" Margin="20" />
<ComboBox x:Name="_cbx" ItemsSource="{Binding Cities}" HorizontalAlignment="Left" SelectionChanged="OnNewCity" />
J'ai créé un propriétés appelées villes dans le code-behind comme liste et rempli avec des valeurs qui sont des chaînes et des valeurs nulles. Lorsque null est sélectionné, SelectedItem est un ComboBoxItem.
Dans le OnNewCity, je remplis une autre zone de texte basée sur SelectedItem et je vois le même comportement.
Pourriez-vous donner plus d'informations sur votre code XAML et votre code?
Modifier après le commentaire de l'auteur:
Merci pour le XAML. J'ai utilisé le même, avec une classe City au lieu d'une liste de chaînes et j'ai le même comportement que vous. Un point d'arrêt dans SelectedCity montre que le setter n'est pas appelé. Lorsque l'objet City est null, la propriété SelectedItem est de type ComboBoxItem et donc je suppose que WPF recherche une propriété SelectedCity d'un type compatible avec ComboBoxItem afin d'appeler le setter. Il ne peut pas en trouver un dans ce cas. J'ai changé mon code-behind pour définir SelectedCity de type objet. Dans ce cas, le setter est appelé, même pour une ville nulle!
Je ne suis pas sûr que changer le type de SelectedCity est une bonne voie à suivre. L'objet Type ne doit pas être surutilisé. Mais vous pourriez avoir une autre propriété utilisée uniquement dans la liaison (et de type objet) qui définit correctement la Cité après la vérification de type.
Une autre meilleure solution consiste à déterminer s'il est judicieux de placer une ville nulle dans une liste liée. Pourriez-vous supprimer ceci ou avoir une ville spéciale avec un nom spécial qui représenterait null?