Привязка детей холста WPF к ObservableCollection

В моем приложении WPF у меня есть Холст, в котором я делаю некоторый рисунок. Ранее я обработал рисунок в коде позади, но теперь я факторизовал все к ViewModel. Это дает мне некоторые проблемы..

У меня есть несколько объектов InkPresenter, содержащих Штрихи. Earier я добавил их как дети к Холсту в коде позади - как это:

// Build an InkPresenter: 
var someInkPresenter = BuildInkPresenter(..); 
//_myCanvas is the <Canvas> I want to display it in: 
_myCanvas.Children.Add(someInkPresenter); 

Теперь - не создание InkPresenter в коде - позади XAML, который содержит _myCanvas, я должен сделать это по-другому. То, что я хотел бы сделать, должно создать InkPresenter и добавить его к набору:

public ObservableCollection<InkPresenter> Drawings;

Моя проблема теперь состоит в том, как связать Холст с этим ObservableCollection - и отобразите InkPresenters при добавлении к набору. Я могу достигнуть этих Данных использования Привязка так или иначе?

13
задан stiank81 23 February 2010 в 11:36
поделиться

1 ответ

Я думаю, вы можете сделать это с помощью ItemsControl + ItemsPanelTemplate . Примерно так:

  <ItemsControl ItemsSource="{Binding YourCollection}">
    <ItemsControl.ItemsPanel>
     <ItemsPanelTemplate>
      <Canvas />
     </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
   </ItemsControl>

Чтобы узнать больше об этом подходе, обратитесь к Dr.WPF: ItemsControl: от A до Z ( P для Panel )

19
ответ дан 1 December 2019 в 19:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: