UWP ComboBox SelectedValue 不工作

UWP ComboBox SelectedValue not working

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

这是我的观点:

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

这是我的视图模型:

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; }
    }

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

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

问题是当我加载页面时,默认值不是 selected 而它应该显示 Category.Code = CategoryCode[=13 的项目的 Category.Name =]

如果可以的话请帮助我,我已经搜索了几个小时,但到目前为止我找不到任何帮助我的东西

我认为您需要在加载 form/control 之前将 SelectedItemSelectedValue 设置为正确的加载变量。