如何显示“默认”选定项目 - Combobox C#WPF

时间:2017-02-02 15:47:19

标签: c# wpf combobox

我使用IEnumerable<string>Variables填充了组合框。 项目正确显示,并允许用户选择一个选项。

 <ComboBox Grid.Row="0" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"
     x:Name="ofmvar"  IsTextSearchEnabled="True" Width="150" Margin="2,2,2,2"
     ItemsSource="{Binding Variables}" SelectionChanged="log_SelectionChanged"
     SelectedItem="{Binding SelectedVar, NotifyOnValidationError=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}"/>

大多数时候(98%)用户从列表中选择一个特定选项;我们称之为“A_Variable”。但偶尔他可以从组合框中选择一个不同的变量;我们称之为“B_Variable”

当程序启动时,他希望组合框默认显示“A_Variable”作为选择..这可能吗?

这是定义SelectedVar的方式:

public string SelectedVar
        {
            get { return _SelectedVar; }
            set
            {
                if (_SelectedVar == value) return;
                _SelectedVar = value;

                OnPropertyChanged("SelectedVar");
            }
        }               
        public string _SelectedVar;

2 个答案:

答案 0 :(得分:2)

由于SelectedItem绑定到ViewModel的SelectedVar,因此只需将SelectedVar设置为ViewModel构造函数中的默认值。

答案 1 :(得分:1)

SelectedVar属性的值设置为&#34; A_Variable&#34;或者您要在视图模型类中选择的Variables集合中的任何值:

class ViewModel
{
    public ViewModel()
    {
        Variables = new List<string> { "A_Variable", "B_Variable" };

        SelectedVar = "A_Variable"; //default selected value...
    }

    public IEnumerable<string> Variables { get; private set; }

    private string _SelectedVar;
    public string SelectedVar
    {
        get { return _SelectedVar; }
        set
        {
            if (_SelectedVar == value) return;
            _SelectedVar = value;

            OnPropertyChanged("SelectedVar");
        }
    }

    //...
}