/// <summary> /// 根据WorkMode动态过滤SubWorkMode,在SubWorkMode中,如果属于被选中的WorkMode则把Visibility设置为True,否则为false /// </summary> /// <param name="workMode">被选中的WorkMode</param> private void FilterSubWorkMode(WorkModeE workMode) { foreach (var item in SubWorkModes) { SubWorkModeE subWorkMode = item.SelectedModel; if (subWorkMode.GetTAttribute <SubWorkModeAttribute>().WorkModeType != workMode) { item.IsShow = Visibility.Collapsed; } else { item.IsShow = Visibility.Visible; } } //切换SubWorkMode后需要重新选择。 var select = SubWorkModes.Find(swm => { return(swm.IsShow == Visibility.Visible && (swm.SelectedModel == SubWorkModeE._4PHASE_GRAY_4PHASE_BG || swm.SelectedModel == SubWorkModeE._4PHASE_GRAY)); }); if (select == null) { select = SubWorkModes.First(swm => swm.IsShow == Visibility.Visible); } SubWorkMode = select.SelectedModel; }
/// <summary> /// 初始化工作模式和SubWorkMode /// </summary> private void InitWorkModes() { if (configCameraModel == null) { return; } foreach (var usercase in configCameraModel.UserCases) { var wm = new ComboBoxViewMode <WorkModeE> { Description = usercase.WorkMode.ToString(), SelectedModel = usercase.WorkMode, IsShow = Visibility.Visible }; if (!WorkModes.Exists(item => item.SelectedModel == wm.SelectedModel)) { WorkModes.Add(wm); } var swm = new ComboBoxViewMode <SubWorkModeE> { Description = usercase.SubWorkMode.ToString(), SelectedModel = usercase.SubWorkMode, IsShow = Visibility.Visible }; if (!SubWorkModes.Exists(item => item.SelectedModel == swm.SelectedModel)) { SubWorkModes.Add(swm); } } //初始化的时候默认的SubWorkMode,其实是根据默认的WorkMode FilterSubWorkMode((WorkModeE)WorkMode); }