1

初めて usercontrol(WindowScreen) をロードすると、elementhost が正しく表示されます。ユーザー コントロールをインスタンス化して別の ID を渡すと、要素ホストが更新されません。これには理由がありますか、またはこれを修正する方法はありますか?

これが私のコードです。

WindowScreen.cs -- winform:

public partial class WindowScreen : UserControl
{
    private WindowView _windowView;
    private WindowViewModel _windowViewModel = null;

    public WindowScreen(int id)
    {
        InitializeComponent();

        elementHost.Child = this.elementHost1;
        _windowViewModel = new WindowViewModel();
        _windowView = (WindowView) this.elementHost.Child;
        //_windowViewModel.LoadTypes(123); --- first load
                  _windowViewModel.LoadTypes(id); --- pass in parameter
        _windowView.DataContext = _windowViewModel;
    }
}

TestScreen.cs -- winform:

public partial class TestScreen : UserControl
{
    public TestScreen()
    {
        InitializeComponent();  
    }

    private void button1_Click(object sender, EventArgs e)
    {
        WindowScreen ws = new WindowScreen(298);
    }
}
4

1 に答える 1

0

これを呼び出すと:

WindowScreen ws = new WindowScreen(298);

新しい を作成していますが、コントロールWindowScreenで使用するように設定することはありません。TestScreenこれで現在を上書きする必要がありますWindowScreen-次のようなものです:

// This needs to be the appropriate/correct variable
this.windowScreen1 = new WindowScreen(298);
于 2012-08-08T19:56:47.683 に答える