private void Window_Loaded(object sender, RoutedEventArgs e)
{
try
{
RichTextBox myRTB = new RichTextBox();
ListViewItem lvi1 = new ListViewItem();
ListViewItem lvi2 = new ListViewItem();
lvi1.Content = myRTB;
lvi2.Content = myRTB;
this.lstView1.Items.Add(lvi1);
this.lstView2.Items.Add(lvi2);
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
兩臺機器:
機1:視窗7 32位,.net4.0安裝
機2:安裝WPF在不同的環境中有不同的行爲?
視窗8 64位,.net4.0/4.5以上的代碼總是機1上崩潰與異常「指定的元素已經是另一個元素的邏輯子,先斷開連接。
但是,它的工作原理機2.(lvi2的內容實際上是空的)
有人能有詳細的explanatio N,爲什麼會發生?(注:測試程序是建立與VS2010,.NET 4.0)
補充:下面的代碼有同樣的問題(機器2上工作,而不是機器1)
try
{
RichTextBox myRTB = new RichTextBox();
ListViewItem lvi1 = new ListViewItem();
lvi1.Content = myRTB;
this.lstView1.Items.Add(lvi1);
this.lstView1.Items.Remove(lvi1);
ListViewItem lvi2 = new ListViewItem();
lvi2.Content = myRTB;
this.lstView2.Items.Add(lvi2);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
我自己有這個,似乎4.5很高興將myRTB的實例移動到可視樹中的一個新位置,其中4.0只是崩潰,無論代碼如你所期望的那樣無法工作,你不會沒有2 myRTB的視覺效果 – Andy