我使用 MVVM。我在 xaml 中有一个带有网格的 ViewA 和一个 ViewModelA。在 ViewModelA 中,我有一个看起来像这样的方法,它在单击按钮时被调用:
public void ButtonClickMethod()
{
ViewB viewB = new ViewB();
viewB.DataContext = new ViewBViewModel();
}
如何将所有创建的 viewB 添加到 ViewA 上的网格中,以便在那里看到它们?或者我的解决方案通常是错误的?
编辑 :
我现在ObservableCollection<ViewB>
在我的 ViewModelA 中使用了一个通知我的 ViewA xaml 中的更改
<ItemsControl ItemsSource="{Binding ObservableCollection<ViewB>}" />
唯一的问题是 ItemControl 中显示的 ViewB 应该是可拖动的。因此我使用了表达式混合
Interaction.GetBehaviors(ViewB).Add(new MouseDragElementBehavior() { });
当我创建一个新的 ViewB。但它不起作用。
编辑2:
我尝试了这个解决方案,但它对我不起作用:(将 MouseDragElementBehavior 与 ItemsControl 和 Canvas 一起使用