gpt4 book ai didi

wpf - 失去焦点时, TreeView 项目会失去选择

转载 作者:行者123 更新时间:2023-12-02 10:59:31 24 4
gpt4 key购买 nike

我在我现在正在开发的应用程序上注意到了这一点,因此我创建了一个简单的测试应用程序来演示。下面是我的窗口和 TreeView 项的事件处理程序。如果展开“一”或“二”父节点,并单击其中一个子节点,则在文本框上调用 Focus() 方法后,选定的子节点不会显示为选定状态。相反,选择会弹出到父节点。有谁知道如何克服这个问题,并且选择仍保留在选定的子节点中吗?谢谢。

<Window 
x:Class="DockingSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1"
WindowState="Maximized"
>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<TreeView Margin="6">
<TreeViewItem Header="One">
<TreeViewItem Header="One" Selected="TreeViewItem_Selected" />
<TreeViewItem Header="Two" Selected="TreeViewItem_Selected" />
<TreeViewItem Header="Three" Selected="TreeViewItem_Selected" />
</TreeViewItem>
<TreeViewItem Header="Two">
<TreeViewItem Header="One" Selected="TreeViewItem_Selected" />
<TreeViewItem Header="Two" Selected="TreeViewItem_Selected" />
<TreeViewItem Header="Three" Selected="TreeViewItem_Selected" />
</TreeViewItem>
</TreeView>

<TextBox Grid.Column="1" x:Name="textbox" />
</Grid>

private void TreeViewItem_Selected(object sender, RoutedEventArgs e)
{
textbox.Focus();
}

使用上面的窗口和“Selected”事件句柄

最佳答案

给 TreeView 一些时间来完成他们的事件,而不是这样做:

Dispatcher.BeginInvoke(DispatcherPriority.Input, new Action(() => textbox.Focus()));

关于wpf - 失去焦点时, TreeView 项目会失去选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1003883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com