using System.Linq; using System.Windows; using MECF.Framework.UI.Client.Ctrlib.Controls; using MECF.Framework.UI.Client.RecipeEditorLib.DGExtension.CustomColumn; using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel; using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params; using OpenSEMI.Controls.Controls; using DataGridRowEventArgs = ExtendedGrid.Microsoft.Windows.Controls.DataGridRowEventArgs; using ExDataGridRow = ExtendedGrid.Microsoft.Windows.Controls.DataGridRow; namespace SicUI.Models.RecipeEditors { /// /// Interaction logic for RecipePM1View.xaml /// public partial class RecipeEditorView { public RecipeEditorView() { InitializeComponent(); } EditorDataGridTemplateColumnBase _PreColumn = null; #region Events private void dgCustom_CurrentCellChanged(object sender, System.EventArgs e) { var datagrid = sender as XDataGrid; if (datagrid == null) return; var column = datagrid.CurrentColumn as EditorDataGridTemplateColumnBase; if (column == null) return; if (_PreColumn == datagrid.CurrentColumn) return; if (_PreColumn != null) { _PreColumn.IsColumnSelected = false; foreach (var item in datagrid.Items) { var list = item as System.Collections.ObjectModel.ObservableCollection; if (list == null) continue; foreach (var p in list) { if (p.Name == _PreColumn.ControlName) p.IsColumnSelected = false; } } } column.IsColumnSelected = true; _PreColumn = column; //var jj = datagrid.Items as System.Collections.ObjectModel.ObservableCollection; foreach (var item in datagrid.Items) { var list = item as System.Collections.ObjectModel.ObservableCollection; if (list == null) continue; foreach (var p in list) { if (p.Name == column.ControlName) p.IsColumnSelected = true; } } } private void DgCustom_OnLoadingRow(object sender, DataGridRowEventArgs e) { e.Row.Selected += RowOnSelected; e.Row.Unselected += RowOnUnselected; } private void DgCustom_OnUnloadingRow(object sender, DataGridRowEventArgs e) { e.Row.Selected -= RowOnSelected; e.Row.Unselected -= RowOnUnselected; } private void RowOnSelected(object sender, RoutedEventArgs e) { if (!(e.Source is ExDataGridRow dgr)) return; if (!(dgr.DataContext is RecipeStep recipeStep)) return; var param = recipeStep.FindParamByControlName(RecipeControlNames.STEP_NO); if (param is StepParam sp) { sp.IsChecked = true; } } private void RowOnUnselected(object sender, RoutedEventArgs e) { if (!(e.Source is ExDataGridRow dgr)) return; if (!(dgr.DataContext is RecipeStep recipeStep)) return; var param = recipeStep.FindParamByControlName(RecipeControlNames.STEP_NO); if (param is StepParam sp) { sp.IsChecked = false; } } private void btnLock_Click(object sender, RoutedEventArgs e) { editorLocker.Lock(); } private void btnChangePassword_Click(object sender, RoutedEventArgs e) { var dlg = new PanelLockerPasswordChanger(); dlg.ShowDialog(); } #endregion } }