ComboBox SelectedValue ou SelectedItem Liaison WPF C#
J'ai un combobox qui est de la liaison à un ObservableCollection
de chaînes de caractères dans un objet. Cette liaison fonctionne, mais je veux aussi de lier tout ce que l'utilisateur sélectionne à partir de cette zone de liste déroulante, dans une autre propriété qui est une chaîne de caractères, dans le même Objet. Je ne peux pas comprendre si je dois utiliser la SelectedValue
ou SelectedItem
, ou si il y a un problème au-delà. Je vous remercie à l'avance.
Voici ce que j'ai jusqu'à présent, j'ai omis le code pertinent pour le problème:
En XAML:
<Grid.Resources>
<my:JobItem x:Key="jobItemViewSource" />
</Grid.Resources>
<ComboBox x:Name="businessUnitBox" ItemsSource="{Binding Path=BusinessUnits}" IsSynchronizedWithCurrentItem="True">
<ComboBox.SelectedValue>
<Binding Path="BusinessUnit" Mode="TwoWay" UpdateSourceTrigger="Explicit" />
</ComboBox.SelectedValue>
</ComboBox>
Code derrière:
public string BusinessUnit
{
get{ return businessUnit; }
set
{
if (String.IsNullOrEmpty(BusinessUnit) || !BusinessUnit.Equals(value))
{
businessUnit = value;
OnPropertyChanged("BusinessUnit");
}
}
}
public ObservableCollection<string> BusinessUnits
{
get { return businessUnits; }
set
{
if(!BusinessUnits.Equals(value))
{
businessUnits = value;
OnPropertyChanged("BusinessUnits");
}
businessUnits = value;
}
}
Cela peut répondre à ta question... stackoverflow.com/questions/2883481/...
OriginalL'auteur Erika | 2012-06-21
Vous devez vous connecter pour publier un commentaire.
Vous voudrez probablement utiliser
SelectedItem
. Cela vous donnera de l'élément réel qui a été liée à elle.SelectedValue
est déterminé par leSelectedValuePath
propriété... qui est juste inutile dans ce cas.En outre, vous ne voulez probablement pas à définir la
UpdateSourceTrigger
êtreExplicit
. La valeur par défaut devrait être bon dans ce domaine.OriginalL'auteur Tim