2011-03-22 86 views
0

已在我的代码隐藏(类名MainHostWindow)以下错误试图绑定内容到窗口进行第二次

private object _hostContent = null; 

    public object HostContent 
    { 
     get { return _hostContent; } 
     set { _hostContent = value;} 
    } 

这种结合成我查看一个ContentControl中。

在不同的类

我做了以下内容:

MainHostWindow host = new MainHostWindow();    


     { 
      host.HostContent = MyView; // this is an instance of a UserControl    
      host.Owner = this._mainWindow;     
      host.DataContext = viewModel;     
     } 
host.ShowDialog(); 

第一次显示了正确的内容的MainHostWindow,第二次我得到以下异常:

指定的元素已经是另一个元素的逻辑子。先断开它。

回答

3

看起来好像您正在尝试将相同的UserControl(不是它的新实例)添加到MainHostWindow的另一个实例。错误是正确的,因为相同的元素不能是两个不同容器的子元素(UserControl.Parent返回什么?)。您将需要创建一个新的UserControl实例。

host.HostContent = new MyView(); 

你能设置MyView的创建控件时,声明在XAML为MainHostWindow因为这将始终创建一个新的实例。

相关问题