WPF Popup焦点在数据网格中 [英] WPF Popup focus in data grid

查看:158
本文介绍了WPF Popup焦点在数据网格中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个在DataGrid编辑模板中使用的自定义UserControl。
它看起来像这样:

I'm creating a custom UserControl to be used inside a DataGrid editing template. It looks like this:

<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="&gt;Enter Name&lt;"/>
        </Popup>
    </Grid>
</UserControl>

编辑:
我缩小了代码位。
似乎如果我将一个Popup与文本框直接在CellEditingTemplate内直接文本框获得焦点没有问题。当我将该代码移动到UserControl中时,编辑单元格时,我无法再选择文本框。

edit: I've narrowed down the code a bit. It seems that if I put a Popup with textbox inside the CellEditingTemplate directly the textbox gets focus no problem. When I move that code into a UserControl I can no longer select the textbox when editing the cell.

UserControl是否与焦点有趣?

Is the UserControl doing something funny with the focus ?

问题是当我编辑datagrid中的单元格时,我看到用户控件显示,但是我无法点击TextBox searchTextBox。当我点击它,弹出窗口关闭,单元格恢复到默认状态。

The problem is when i edit the cell in the datagrid I get the user control showing up but I can't click in the TextBox searchTextBox. When I click on it the popup closes and the cell goes back to default.

我已经尝试复制并粘贴用户控件中的所有代码,并将其直接粘贴到CellEditingTemplate,并且它的交互方式应该。

I have tried copying and pasting all the code inside the user control and pasting it directly into the CellEditingTemplate and that interacts the way it should.

我只是想知道UserControl是否有一些奇怪的事情,阻止弹出窗口获得焦点,因为它直接放在CellEditingTemplate?

I was just wondering if the UserControl did something weird that prevents a popup from gaining focus because it works as expected when directly placed in the CellEditingTemplate ?

谢谢,
Raul

Thanks, Raul

推荐答案

不知道这是否会帮助任何人,但是如果您在datagrid中有一个弹出窗口的自定义控件,这有助于此修复我的问题,而且是xaml的一行。我花了一整天重新阅读这个论坛,然后查看DataGridCell的来源。希望这有帮助。

Not sure if this will help anyone, but this helps if you have custom controls in the datagrid with a popup..... this fixed my problem, and it was one line of xaml. I spend the whole day re-reading this forum and then looking at the source for DataGridCell. Hope this helps.

    <Style TargetType="{x:Type DataGridCell}">
        <Setter Property="Focusable" Value="False"></Setter>
    </Style>

这篇关于WPF Popup焦点在数据网格中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆