我有一个嵌套的TreeView
地方,我在每个项目上绑定双击事件,以便将节点的文本更改为可编辑的文本框。然后我使用 lostFocus 事件处理程序删除文本框并恢复文本。
void treeViewItemWithMenu_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (selected == e.Source)
{
TextBox tb = new TextBox();
tb.Text = this.Header.ToString();
tb.Focus();
tb.LostFocus += new RoutedEventHandler(tb_LostFocus);
this.Header = tb;
var a = e.OriginalSource;
e.Handled = true;
}
}
void tb_LostFocus(object sender, RoutedEventArgs e)
{
this.Header = ((TextBox)(this.Header)).Text;
}
不幸的是,lostFocus 事件似乎没有正常工作。当我在文本框外单击时,它根本不会触发。我什至可以双击另一个节点,它进入编辑模式(即变成一个文本框),而第一个文本框似乎仍然有焦点。在我开始在两个文本框之间来回切换之前,失去焦点不会触发。
我正在使用项目设置为 .net 3.5 的 vs2010 rc。