3

私はこのことでかなりの問題を抱えていElementHostます。誰かが私が持っているものを見て、何が起こっているのか、またはなぜこれが表示されないのかを教えてもらえますか? ElementHostすべてが機能しているようですが、画面に表示/更新が表示されないだけです(ユーザーコントロール)。

Test.cs.デザイナー

this.TestHost.Dock = System.Windows.Forms.DockStyle.Fill;
this.TestHost.Location = new System.Drawing.Point(5, 5);
this.TestHost.Name = "TestHost";
this.TestHost.Size = new System.Drawing.Size(1139, 213);
this.TestHost.TabIndex = 1;
this.TestHost.Text = "elementHost1";
this.TestHost.Child = this.testview1;
this.TestHost.Visible = true;

Test.cs

private void btnTest_Click(object sender, EventArgs e)
{
    LoadView(item);
}

public void LoadView(Person item)
{
    TestHost.Child = this.testview1; //name given when drag/drop .. should still reference wpf TestView xaml

    try
    {
        if (item != null)
        {
            // TestView is WPF xaml/View                
            TestView view = new TestView();
            view = (TestView) TestHost.Child;
            //TestViewModel is a viewmodel

            TestViewModel vm = (TestViewModel) view.DataContext;
            //load items from viewmodel             
            vm.LoadItems(item);
        }   

        TestHost.Visible = true;
    }
    catch(Exception ex)
    {
        ex.ToString();
    }
}
4

1 に答える 1

1

コードからは、elementhostの子をインスタンスではなくクラスに設定しているように見えます(コンパイルされません)。私の質問は、TestViewインスタンスはどこから来ているのですか?

TestHost.Child = TestView;

デバッグするには、try / catchブロックで「ex.ToString()」を変更してメッセージボックスを表示します。例外が発生した場合は、そのことに気付くでしょう。

于 2012-07-30T08:44:30.683 に答える