私は、ユーザーコントロールを含むメインウィンドウでWPFアプリケーションを使用しています。私は、メインウィンドウからユーザーコントロールに値を渡したいと思います。
私は、コードを持っているメインウィンドウのコンストラクタで:
public MainWindow()
{
InitializeComponent();
_vm = new MainWindowViewModel();
this.DataContext = _vm;
ucControl = new UserControl1("NameSet");
}
(ucControlは私のユーザーコントロールである)
ユーザーコントロールは、2つのコンストラクタがあります。
public UserControl1()
{
InitializeComponent();
this.ID = ID.GetNewID;
}
public UserControl1(string name)
{
InitializeComponent();
_vm = new UCViewModel(name);
this.DataContext = _vm;
this.ID = ID.GetNewID;
}
問題は次のとおりですが、 2番目のコンストラクタ(withパラメータ)が呼び出されたとき、メインウィンドウにロードされません。私は、ユーザーコントロールのロードされたイベントでID(this.ID)をチェックし、そのIDがデフォルトのコンストラクタに設定されていて、そのDataContextがnullであることがわかりました。この理由のため、私は自分のユーザーコントロールに「名前」文字列を取得しません。
お願いします。私はMVVMパターンを使用しているので、私はユーザーコントロール(ビュー)のプロパティをこのためにメインウィンドウから設定することは望ましくありません。
そこからこのユーザーコントロールをロードしました..さらにコードを表示します –
ユーザーコントロールはメインウィンドウのxamlにあります。 –
thewpfguy
私は質問がhttp://stackoverflow.com/questions/4802278/how-do-you-pass-parameters-fromに似ていると思います-xaml。それが助けになるだろう。 –