-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathISortingStrategy.cs
More file actions
19 lines (16 loc) · 1.47 KB
/
Copy pathISortingStrategy.cs
File metadata and controls
19 lines (16 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
namespace Kritjara.Collections.ObjectModel;
/// <summary>
/// Определяет стратегию сортировки для коллекции, включая компаратор элементов, уведомления об изменениях условий сортировки и проверку влияния изменений свойств на порядок.
/// </summary>
/// <typeparam name="T">Тип сортируемых элементов.</typeparam>
public interface ISortingStrategy<T>
{
/// <summary>Происходит при изменении условий сравнения элементов.</summary>
event EventHandler Changed;
/// <summary>Компаратор элементов</summary>
IComparer<T> Comparer { get; }
/// <summary>Проверяет указанное наименование свойства объекта на то, требуется ли переоценка индекса позиции элемента внутри коллекции после изменения значения этого свойства</summary>
/// <param name="propertyName">Наименование свойства объекта, значение которого изменилось.</param>
/// <returns><see langword="true"/> - если нужна переоценка индекса, в противнос случае - <see langword="false"/></returns>
public bool IsSortAffected(string propertyName);
}