В этом случае, вы должны быть в состоянии просто использовать .Text()
, чтобы установить его:
cmbBudgetYear.Text = "2010";
Для получения значения после изменения, хотя и может быть, это потому, что я не ставил SelectedValuePath="Content"
везде, или возможно, потому, что я не использовал SelectedValue
, чтобы установить его (и почему я упоминаю об этом), становится немного сложнее определить фактическое значение, так как вам нужно сделать это после добавления обработчика события для SelectionChanged
в 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());
}
Если анализатор необходим потому, что .SelectedValue.ToString()
даст вам что-то вроде System.Windows.Controls.Control: 2010
, так что вы должны разобрать его, чтобы получить значение:
private static string cboParser(string controlString)
{
if (controlString.Contains(':'))
{
controlString = controlString.Split(':')[1].TrimStart(' ');
}
return controlString;
}
По крайней мере, это то, что я столкнулся .... Я знаю, что это вопрос касался установки поля, но он не может адресовать только настройку, не говоря о том, как ее получить, а позже, так как, как вы ее установите, будет определяться, как вы ее получите, если она будет изменена.
Haha ... SelectedValuePath = "Содержимое". Благодаря! – knockando
Отличный ответ, мне тоже помогли. – Califf