Я создаю пользовательский UserControl, который будет использоваться внутри шаблона редактирования DataGrid. Это выглядит следующим образом:WPF Всплывающее фокус в сетке данных
<UserControl
x:Class="HR.Controls.UserPicker"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:tk="http://schemas.microsoft.com/wpf/2008/toolkit"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<TextBlock x:Name="PART_TextBox" Text="Hello WOrld" />
<Popup Width="234" Height="175" IsOpen="True" StaysOpen="True"
Placement="Bottom"
PlacementTarget="{Binding ElementName=PART_TextBox}"
>
<TextBox
x:Name="searchTextBox"
Text=">Enter Name<"/>
</Popup>
</Grid>
</UserControl>
редактировать: Я сузил код немного. Кажется, что если я помещаю всплывающее окно с текстовым полем внутри CellEditingTemplate, текстовое поле не будет фокусироваться без проблем. Когда я переношу этот код в UserControl, я больше не могу выбирать текстовое поле при редактировании ячейки.
Является ли UserControl чем-то смешным с фокусом?
Проблема заключается в том, когда я изменить ячейку в сетке я получаю пользовательский элемент управления, показывая вверх, но я не могу нажать на TextBox searchTextBox. Когда я нажимаю на него, всплывающее окно закрывается, и ячейка возвращается к умолчанию.
Я пробовал копировать и вставлять весь код внутри пользовательского элемента управления и вставлять его непосредственно в CellEditingTemplate и взаимодействует так, как должен.
Мне просто интересно, сделал ли UserControl что-то странное, что не позволяет фокусу всплывать, потому что он работает так, как ожидалось, когда он непосредственно помещается в CellEditingTemplate?
Спасибо, Рауль
Ну UserControl есть что-то странное с ним, что не лечить фокус всплывающего окна, чтобы быть частью его собственной личности. Поэтому мне пришлось создать пользовательский контроль и поцарапать UserControl. Это была боль, но стоящая за свободу, которую вы получаете. – HaxElit