c# - 打开应用程序时设置DataList项的背景颜色
问题描述
当我启动一个应用程序时,菜单上没有选择项目。我从主页开始。我怎样才能使它的背景改变为选择喜欢?现在只有当我重新选择这个菜单项时,它的背景颜色才会变成我想要的样子。此代码不是我的,但我无法联系原始开发人员。如果有人需要任何其他信息,请发表评论。先感谢您。
public List<IPageViewModel> PageViewModels
{
get
{
if (_pageViewModels == null)
_pageViewModels = new List<IPageViewModel>();
return _pageViewModels;
}
}
public IPageViewModel CurrentPageViewModel
{
get => _currentPageViewModel;
set
{
_currentPageViewModel = value;
OnPropertyChanged("CurrentPageViewModel");
}
}
private List<MenuItem> menu;
public List<MenuItem> Menu
{
get => menu;
set
{
menu = value;
OnPropertyChanged("Menu");
}
}
private MenuItem selectedMenuItem;
public MenuItem SelectedMenuItem
{
get => selectedMenuItem;
set
{
selectedMenuItem = value;
OnPropertyChanged("SelectedMenuItem");
}
}
private RelayCommand goToItemCommand;
public RelayCommand GoToItemCommand
{
get
{
return goToItemCommand ??= new RelayCommand(obj =>
{
switch (SelectedMenuItem?.Item)
{
case "НОВОСТИ":
CurrentPageViewModel = PageViewModels[0];
break;
case "СЕРВЕРА":
CurrentPageViewModel = PageViewModels[1];
break;
case "ПАРАМЕТРЫ":
CurrentPageViewModel = PageViewModels[2];
break;
}
});
}
}
public GeneralViewModel()
{
Menu = new List<MenuItem>()
{
new MenuItem(){Item = "НОВОСТИ", IsEnabled = true},
new MenuItem(){Item = "СЕРВЕРА", IsEnabled = true},
new MenuItem(){Item = "ПАРАМЕТРЫ", IsEnabled = true}
};
PageViewModels.Add(new NewsPageViewModel());
PageViewModels.Add(new ServersPageViewModel());
PageViewModels.Add(new ParametersPageViewModel());
CurrentPageViewModel = PageViewModels[1];
StartLauncher();
}
解决方案
您必须从构造函数初始化SelectedMenuItem
属性。例如:
public GeneralViewModel()
{
Menu = new List<MenuItem>()
{
new MenuItem(){Item = "НОВОСТИ", IsEnabled = true},
new MenuItem(){Item = "СЕРВЕРА", IsEnabled = true},
new MenuItem(){Item = "ПАРАМЕТРЫ", IsEnabled = true}
};
// Pre-select a default menu item
SelectedMenuItem = Menu[0];
...
}
推荐阅读
- ios - 使用未声明的类型“UIWindowScene”
- c++ - 多个继承变量正确返回
- javascript - 如何使用本机反应在平面列表中显示对象数组中的数组列表?
- svg - 如何沿椭圆均匀分布点?
- android - Android Wear 模拟器自动进入环境模式
- java - 运行 groovy 程序后发生非法反射访问操作
- python - 当我尝试使用 csv.writer 写入数据时出现问题
- mysql - MySQL - 尝试为每个不同的 DATE 返回一行;显示 CASH、CREDIT 和总计
- r - 如何在ggplot中添加具有短垂直端的水平注释线?
- excel - 用于根据命名范围过滤数据透视表字段的 VBA