Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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:从datatemplate自动创建新控件时触发的事件是什么?_C#_Wpf_Textbox_Datatemplate - Fatal编程技术网

C# WPF:从datatemplate自动创建新控件时触发的事件是什么?

C# WPF:从datatemplate自动创建新控件时触发的事件是什么?,c#,wpf,textbox,datatemplate,C#,Wpf,Textbox,Datatemplate,我有一个ObservableCollection标签,其中标签类只包含一个字符串内容属性。我创建了一个DataTemplate,它显示所有标签,并显示用于删除和添加新标签的小按钮 <DataTemplate> <Border BorderThickness="1" BorderBrush="#676B6E" Margin="3"> <StackPanel Orientation="Horizontal"> <

我有一个
ObservableCollection标签
,其中标签类只包含一个
字符串内容
属性。我创建了一个
DataTemplate
,它显示所有标签,并显示用于删除和添加新标签的小按钮

<DataTemplate>
    <Border BorderThickness="1" BorderBrush="#676B6E" Margin="3">
        <StackPanel Orientation="Horizontal">
            <TextBox Text="{Binding Content, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Tag="{Binding}" Padding="0" Margin="2,0"/>
            <Button Style="{StaticResource RibbonButton}" Click="ButtonRemoveTagClick" Tag="{Binding}" Padding="0">
                <Image Height="12" Width="12" Source="/My Application;component/Resources/cross.png" />
            </Button>
        </StackPanel>
    </Border>
</DataTemplate>

当我向集合中添加新的
标记时,我希望自动创建的文本框自动选择其中的所有文本并获取焦点

我是否可以在文本框本身上处理适当的事件,或者是否有更好的方法来处理这个问题


我尝试使用
WpfExtendedToolkit.AutoSelectTextBox
,但没有按我想要的方式工作。

在本例中,文本框的已加载事件起到了作用

    private void TextBox_Loaded(object sender, RoutedEventArgs e)
    {
        TextBox tb = sender as TextBox;

        tb.Focus();
        tb.SelectAll();
    }

感谢Clemens的快速响应。

您可以尝试加载的事件,然后查看绑定是否已建立。否则,TextChanged事件的首次出现可能是合适的。如何向集合中添加
标记
?为什么不能在添加新项的代码中执行选择/聚焦操作?文本框的
加载的
事件可以工作;您需要添加一个标志,以确保只选择/关注
TextChanged
事件的第一个实例,以避免激怒用户。如果不清楚地说明你尝试了什么以及问题的确切背景,就不可能给出一个好的答案。我认为这个问题写得很好。我没有提到datatemplate是绑定到Tags集合的WrapPanel数据的一部分,但我真的认为在这种情况下,MVVM方案是隐含的@克莱门斯感谢您的快速回复。加载的事件完成了任务。