私はMVVMを使用しています。xaml のグリッドと ViewModelA を持つ ViewA があります。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を作成するとき。しかし、うまくいきません。
EDIT2:
私はこの解決策を試しましたが、うまくいきません:( ItemsControl と Canvas で MouseDragElementBehavior を使用する