Dans ce cas, vous devriez être en mesure de simplement utiliser .Text()
pour le définir:
cmbBudgetYear.Text = "2010";
Pour obtenir la valeur après un changement, cependant, et peut-être parce que je ne l'ai pas mis SelectedValuePath="Content"
partout, ou peut-être parce que je n'ai pas utilisé SelectedValue
pour le définir (et pourquoi je le mentionne), il devient légèrement plus compliqué de déterminer la valeur réelle, comme vous devez le faire après avoir ajouté le gestionnaire d'événements pour SelectionChanged
dans le XAML:
private void cmbBudgetYear_SelectionChanged(object sender, EventArgs e)
{
ComboBox cbx = (ComboBox)sender;
string yourValue = String.Empty;
if (cbx.SelectedValue == null)
yourValue = cbx.SelectionBoxItem.ToString();
else
yourValue = cboParser(cbx.SelectedValue.ToString());
}
Lorsqu'un analyseur est nécessaire parce que .SelectedValue.ToString()
vous donnera quelque chose comme System.Windows.Controls.Control: 2010
, de sorte que vous devez analyser dehors pour obtenir la valeur:
private static string cboParser(string controlString)
{
if (controlString.Contains(':'))
{
controlString = controlString.Split(':')[1].TrimStart(' ');
}
return controlString;
}
Au moins, ce que je suis tombé sur .... Je sais que ce La question portait sur la définition de la boîte, mais ne peut pas aborder uniquement le paramètre sans parler de la façon de l'obtenir, plus tard, aussi, car la façon dont vous le définissez déterminera comment vous l'obtiendrez si elle est modifiée.
Haha ... SelectedValuePath = "Contenu" était-il. Merci! – knockando
Excellente réponse, m'a aidé aussi. – Califf