public void RegisterDataProvider(DataProvider provider) { if (DataProviders.Contains(provider)) { return; } if (provider.Trigger.TryGetTarget(out var tigger) && tigger != null) { sheet.workbook.ControlInstance.Children.Add(tigger); tigger.Visibility = System.Windows.Visibility.Collapsed; } if (provider.Selector.TryGetTarget(out var selector) && selector != null) { sheet.workbook.ControlInstance.Children.Add(selector); } DataProviders.Add(provider); }
public void UnregisterDataProvider(DataProvider provider) { if (!DataProviders.Contains(provider)) { return; } for (int i = 0; i < sheet.RowCount; i++) { for (int j = 0; j < sheet.ColumnCount; j++) { Cell cell = sheet.GetCell(i, j); if (cell == null) { continue; } if (cell.DataProvider == provider) { cell.DataProvider = null; } } } if (provider.Trigger.TryGetTarget(out var tigger) && tigger != null) { tigger.Visibility = System.Windows.Visibility.Collapsed; if (sheet.workbook.ControlInstance.Children.Contains(tigger)) { sheet.workbook.ControlInstance.Children.Remove(tigger); } } if (provider.Selector.TryGetTarget(out var selector) && selector != null) { if (sheet.workbook.ControlInstance.Children.Contains(selector)) { sheet.workbook.ControlInstance.Children.Remove(selector); } } DataProviders.Remove(provider); }