J'ai une zone de liste déroulante wpf. ItsSourceSource a une liaison à un ObservebaleCollection. La valeur affichée (via DisplayMemberPath) est la propriété Name de la classe Entity. Le problème est que lorsque je mets à jour le nom d'entité sélectionné et déclenche NotifyPropertyChnage, il n'est pas mis à jour dans l'interface utilisateur (même si j'ouvre la liste déroulante ici). Je suppose que le problème est que le hashcode de l'entité est toujours le même et que le combo ne voit pas de différence. Que puis-je faire?Mettre à jour le champ affiché dans la zone de liste déroulante DisplayMemberPath non affiché
XAML:
<ComboBox ItemsSource="{Binding Entities, Mode=OneWay}"
SelectedItem="{Binding CurrentEntity}"
DisplayMemberPath="Name"/>
Code:
public event PropertyChangedEventHandler PropertyChanged;
ObservableCollection<Entity> m_entities = new ObservableCollection<Entity>();
public ObservableCollection<Entity> Entities{get{return m_entities;}}
public Entity CurrentEntity{get;set}
public void RenameEntity(string name)
{
m_currentEntity.Name = name;
PropertyChanged(this, new PropertyChangedEventArgs("CurrentEntity"));
PropertyChanged(this, new PropertyChangedEventArgs("Entities"));
}
tout d'abord, vous pouvez poster un code :) –
Je J'ai eu le même problème. Je l'ai forcé à actualiser en effaçant et en réaffectant le DisplayMemberPath dans le code derrière juste après que le nom de l'élément (qui est pointé par DisplayMemberPath) a été modifié. Je sais que c'est une solution stupide, mais c'est la plus facile je pense. –