2011-03-22 10 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因爲這將始終創建一個新的實例。

相關問題