UWP ComboBox SelectedValue不起作用

时间:2018-03-26 16:35:09

标签: c# combobox mvvm-light uwp-xaml selectedvalue

我正在使用uwp和mvvm-light在c#中编写一个数据库管理应用程序,如果不打开它并手动选择一个,我无法在我的组合框中显示默认的selectedValue。

以下是我的观点:

<ComboBox x:Name="editCategory" Header="Category" ItemsSource="{Binding Categories}" SelectedValue="{Binding CategoryCode, Mode=TwoWay}" SelectedValuePath="Code" DisplayMemberPath="Name"/>

这是我的ViewModel:

private ObservableCollection<Category> _categories;
public ObservableCollection<Category> Categories {
    get { return _categories; }
    set {
        if (_categories == value)
            return;
        _categories = value;
        RaisePropertyChanged("Categories");
    }
}

private int _categoryCode;
public int CategoryCode {
    get { return _categoryCode; }
    set {
        if (_categoryCode == value)
            return;
        _categoryCode = value;
        RaisePropertyChanged("CategoryCode");
    }
}

我的模特:

class Category
    {
        public int Code { get; set; }
        [Required]
        public string Name { get; set; }
    }

我可以在打开组合框时显示不同的值,当我选择一个值时,它会在组合框关闭时正确显示。

我知道绑定工作正常,因为如果我在ViewModel的CategoryCode设置器中设置断点,它会显示正确的更新值。

问题是当我加载页面时,当它应该显示Category.Code = CategoryCode

的项目的Category.Name时,不会选择默认值。

如果可以,请帮助我,我一直在寻找几个小时,到目前为止我找不到任何帮助我

1 个答案:

答案 0 :(得分:0)

我相信在加载表单/控件之前,您需要将SelectedItemSelectedValue设置为正确的加载变量。