Exemplo n.º 1
0
        /// <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;
        }
Exemplo n.º 2
0
        /// <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);
        }