using System.Linq; using System.Windows; using MECF.Framework.UI.Client.RecipeEditorLib.DGExtension.CustomColumn; using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params; using OpenSEMI.Controls.Controls; using RecipeEditorLib.RecipeModel.Params; 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; 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.FirstOrDefault(x => x.Name == RecipColNo.StepNo.ToString()); 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.FirstOrDefault(x => x.Name == RecipColNo.StepNo.ToString()); if (param is StepParam sp) { sp.IsChecked = false; } } } }