Я пишу пользовательский элемент управления с нуля (используя Graphics
), который будет представлять собой набор столбцов, каждый из которых будет иметь список ячеек, очень похожий на сетку кроме этого, будут иметь некоторые пользовательские функции.Как управлять привязками данных в 100% настраиваемом элементе управления сетью
Мне сложно найти способ управления всей проблемой привязки данных. Я бы хотел, чтобы эта сетка имела свойство DataSource
, которое в основном должно было быть зубчатым массивом (2D) некоторых объектов, каждый из которых должен был бы привязываться к ячейке в элементе управления. Я все еще не уверен, какие свойства у каждого из этих объектов будут, и до сих пор я использую только текст. То, что я пытаюсь сделать, это моя модель реализовать этот интерфейс:
public interface IDiagramDataSource
{
IBindingList Columns { get; }
}
и тогда каждый столбец это реализовать:
public interface IDiagramColumnDataSource : INotifyPropertyChanged
{
IBindingList Cells { get; }
}
Но я до сих пор с трудом выясняя лучший способ сохранить все эти объекты синхронизированными с соответствующими объектами в моей сетке. Мне бы хотелось, чтобы у меня была возможность связать весь обязательный беспорядок в независимом классе, но не знаю, как это сделать. Пока что я просто перекрашу все это, всякий раз, когда есть какие-либо изменения в источнике данных, но я хотел бы в конечном итоге определить, какое свойство, в котором ячейка или какая ячейка, в которой был изменен столбец, чтобы я мог обновлять только необходимые предметы в моей сетке.
Есть ли какой-либо шаблон, который следует отслеживать, если вы хотите, чтобы элемент управления был привязан к вложенным спискам? Я предполагаю, что с этого момента контроль DataGridView
.
'очень похоже на сетку, за исключением того, что у нее будут некоторые пользовательские функции.' - Могу ли я спросить, каковы эти пользовательские функции? –
Это будет фактически как блок-схема. Каждая ячейка будет иметь стрелку, которая будет указывать на ближайшую ненулевую ячейку справа (поэтому она может расширяться поверх других столбцов). Вы сможете перемещать ячейки вверх и вниз (не всю строку). И, вероятно, другие вещи, которые я до сих пор не знаю. – Juan
'' это будет на самом деле «звучит так, как будто вы еще не слишком глубоко в него вошли. Просто предложение .. вы считали WPF для этого? это может быть намного проще сделать такую продвинутую вещь (с точки зрения пользовательского интерфейса) в WPF, что winforms –