In diesem Fall sollten Sie in der Lage sein, einfach .Text()
zu verwenden, um es zu setzen:
cmbBudgetYear.Text = "2010";
Für den Wert nach einer Änderung bekommen, aber, und es ist vielleicht, weil ich nicht SelectedValuePath="Content"
überall gesetzt habe, oder vielleicht, weil ich SelectedValue
nicht verwendet habe, um es zu setzen (und warum ich es erwähne), wird es etwas komplizierter, den tatsächlichen Wert zu bestimmen, wie Sie dies nach dem Hinzufügen des Ereignishandlers für SelectionChanged
in der XAML tun müssen:
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());
}
Wenn ein Parser benötigt, weil .SelectedValue.ToString()
Sie so etwas wie System.Windows.Controls.Control: 2010
geben, so haben Sie es zu analysieren, um den Wert zu erhalten:
private static string cboParser(string controlString)
{
if (controlString.Contains(':'))
{
controlString = controlString.Split(':')[1].TrimStart(' ');
}
return controlString;
}
Zumindest das ist, was in Ich lief .... Ich weiß, das Frage war über das Setzen der Box, aber kann nicht nur Einstellung, ohne darüber zu sprechen, wie man es bekommen, später, auch, wie Sie es einstellen wird bestimmen, wie Sie es bekommen, wenn es geändert wird.
Haha ... SelectedValuePath = "Inhalt" war es. Vielen Dank! – knockando
Ausgezeichnete Antwort, hat mir auch geholfen. – Califf