MVVM について頭を悩ませようとしています。多くのことは理解していますが、DataContext の設定という1 つの側面を理解するのに苦労しています。
特定のオブジェクトを含むビューを表示したい。ユーザーは何が表示されるかを決めることができないため、コードでビューを作成する必要があります。次に、ビューの DataContext をオブジェクトに設定します (バインド用)。このためにビューにコードを入れないようにしていますが、View.LayoutRoot.DataContext は公開されていません。
私は何が欠けていますか?
これを回避しようとしています:
public class View
{
public View(object dataContext)
{
InitializeComponent();
LayoutRoot.DataContext = dataContext;
}
}
このようなもので:
public class ViewModel
{
...
public UIElement GetView()
{
UIElement *element = new View();
element.LayoutRoot.DataContext = element;
return element;
}
}