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 之前将 SelectedItem
或 SelectedValue
设置为正确的加载变量。
我正在使用 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 之前将 SelectedItem
或 SelectedValue
设置为正确的加载变量。