Это не дубликат коллекции строк привязки к холсту в WPF
поскольку мне нужно использовать ObservableCollection ViewModels и все другие функции ListView (выборы, привязка SelectedItem и т. д.), и я не привязываются только линии, а что-то произвольное (другой пользовательский элемент управления, линии, прямоугольник, текст и т. д.) и позиционируется на холсте.
ItemsControl не предоставляет функции выбора.
Цель состоит в том, чтобы иметь UserControl, говорит CanvasView, с несколькими строками, расположенными благодаря Canvas, с аналогичными функциями ListView (выбранные элементы, добавление/удаление и т. д.) и подключить его к ObservableCollection.
У меня есть ObservableCollection элементов (VideoMarker):
public class VideoMarker
{
public int ID { get; }
public string Name { get; set; }
public int Position { get; set; }
public DateTime Created { get;}
public VideoMarker(int position, int id, string name)
{
Created = DateTime.Now;
Position = position;
ID = id;
Name = $"{name} {id}";
}
}
в ViewModel, говорит MarkersViewModel, связанный с CanvasView:
public class MarkersViewModel : INotifyPropertyChanged
{
public ObservableCollection Markers { get; } = new();
// etc...
}
В Представлении у меня будет что-то вроде этого (для принципа):
За исключением того, что я не хочу жестко закодировать элементы Line с этими деталями, мне нужен ItemTemplate, например
Одним из преимуществ является добавление или удаление строк, поскольку маркеры ObservableCollection содержат новые или удаленные элементы, и каждый из них имеет привязку к любому указанному мной шаблону.
Я хочу использовать свойства зависимостей: ItemsSource, SelectedItem и т. д.
Еще один момент: как я могу использовать подкласс Selector и UserControl подкласса CanvasView ? Я знаю, что могу создать подкласс только одного из них, какой из них мне следует использовать и как реализовать остальные?
Как реализовать CanvasView, чтобы я мог использовать его и указывать его ItemTemplate везде, где я использовать его, подключить его (и его элементы) к ObservableCollection?
Лучшее, что я мог сделать до сих пор, - это использовать ItemsControl, но у меня нет функций выбора ListView как:
Подробнее здесь: https://stackoverflow.com/questions/792 ... anvas-inst
Как реализовать UserControl с функциями ListView, Canvas вместо списка и фигурами, такими как линии, в качестве представ ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение