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:安装了Windows 7 32bit,.net4.0
机器2:安装了Windows 8 64bit,.net4.0/4.5
上面的代码总是在机器 1 上崩溃,除了“指定元素已经是另一个元素的逻辑子元素,请先断开它。
但是,它在机器 2 上工作。(lvi2 的内容实际上是空的)
有人可以详细解释一下,为什么会这样吗?(注意:测试应用程序是用 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());
}