Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 选择对话框WPF中的所有不工作_C#_Wpf - Fatal编程技术网

C# 选择对话框WPF中的所有不工作

C# 选择对话框WPF中的所有不工作,c#,wpf,C#,Wpf,我不确定出了什么问题,但我无法在对话框中选择文本框的文本 我添加了一个FirstTimeLoadedHandler以加载到我的视图中,我在其中选择了文本: public ParticipantView() { InitializeComponent(); Loaded += FirstTimeLoadedHandler; } private void FirstTimeLoadedHandler(object sender, RoutedEventArgs e) { S

我不确定出了什么问题,但我无法在对话框中选择文本框的文本

我添加了一个
FirstTimeLoadedHandler
以加载到我的视图中,我在其中选择了文本:

public ParticipantView()
{
    InitializeComponent();
    Loaded += FirstTimeLoadedHandler;
}

private void FirstTimeLoadedHandler(object sender, RoutedEventArgs e)
{
    SurnameBox.Focus();
    Keyboard.Focus(SurnameBox);
    SurnameBox.SelectAll();
}
但是,我的文本框处于键盘焦点,但根本没有被选中。我不知道为什么它不起作用


我认为这与我的数据绑定有关,但数据应该在加载前接收,否则我错了吗?

您的代码只需做两个小改动就可以正常工作。首先,显然,在没有文本的
TextBox
上选择all不会产生任何效果。其次,如果您在调用
SelectAll
后对其进行聚焦,您的运气会更好。试试这个:

private void FirstTimeLoadedHandler(object sender, RoutedEventArgs e)
{
    SurnameBox.Text = "This text is selected";
    SurnameBox.SelectAll();
    Keyboard.Focus(SurnameBox);
}

尝试调试代码,在处理程序中放置断点,并查看文本框的内容。如果为空,则必须使用另一个事件(如:)。我猜您是对的。文本框为空,因此将在指定我的值之前调用它。但是,我不能在每次更改后都将其聚焦,因为这样它会在键入时选择文本…您的所有代码都在正常的WPF窗口中工作,这一定与您的数据绑定有关。您只需在首次处理SourceUpdate事件后取消订阅即可。这将确保您只选择一次。不过有点粗糙。@Frame91:在LostFocus事件中使用“全选”选项,它会起作用,否则在选择文本框之前应该有内容。。