当前位置: 首页 > 知识库问答 >
问题:

应用于FlyoutControl的DataTemplate中的WPF-Focus控件

仉宪
2023-03-14

我有一个包含文本框的DataTemplate。DataTemplate绑定到DevExpress FlyoutControl样式的ContentTemplate属性。Flyout控件本身位于另一个TextBox的ControlTemplate中。

<DataTemplate x:Key="FlyoutTemplate">
   <Grid>
      <dxe:TextEdit x:Name="TextThatWantsFocus"
        FocusManager.FocusedElement={Binding RelativeSource={RelativeSource Self}}" />
   </Grid>
</DataTemplate>
<Style x:Key="FlyoutStyle" TargetType="dxe:FlyoutControl">
   <Setter Property="ContentTemplate" Value="{StaticResource FlyoutTemplate}"/>
</Style>

...

<dxe:TextEdit>
   <dxe:TextEdit.Template>
      <ControlTemplate>
         <StackPanel>
            <dxe:TextEdit x:Name="InnerTextEdit" />
            <dxe:FlyoutControl Style="{StaticResource FlyoutStyle}"/>
         </StackPanel>
      </ControlTemplate>
   </dxe:TextEdit.Template>
</dxe:TextEdit>

飞出正在用代码打开。在这里,我还想聚焦文本框(TextThatWantsFocus)。然而,我尝试过的任何东西都不会给它带来焦点(除了FocusManager第一次处理它之外),包括典型的涉及触发器的SO答案。任何想法都将不胜感激。

共有1个答案

洪越泽
2023-03-14

我采纳了Dmitryg的建议,提交了一份DevExpress支持票,他们能够提供解决方案

通过处理我想聚焦的TextEdit的加载事件并使用调度程序对其进行聚焦,问题得到了解决:

private void TextThatWantsFocus_Loaded(object obj, RoutedEventArgs e)
{
    var text = obj as FrameworkElement;
    Dispatcher.CurrentDispatcher.BeginInvoke(new Action(delegate()
        { text.Focus(); }));
}
 类似资料:
  • 我找不到访问“PR1”的方法,因为它在DataTemplate中,因此不能直接从代码隐藏中访问。绑定不能通过吗?它之前的列(“P2”列)就在test列上,我放入该列只是为了确保该值确实在更新,并且正确显示,但是“ProgressColumn”总是只显示默认值。 在ListView.View>GridView>GridViewColumn>GridViewColumn.CellTemplate>Da

  • 我尝试在Windows Phone应用程序中创建一个列表框。我试图为它创建一个自定义datatemplate。在许多示例中,我看到了类似于这个简单的列表框: 谢了!

  • 本文向大家介绍WPF中引入WindowsForms控件的方法,包括了WPF中引入WindowsForms控件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了WPF中引入WindowsForms控件的方法。分享给大家供大家参考,具体如下: 环境: [1]WindowsXP with SP3 [2]VS2008 with SP1 正文: Step1:在现有工程中引入Windows For

  • 本文向大家介绍C# WPF ListView控件的实例详解,包括了C# WPF ListView控件的实例详解的使用技巧和注意事项,需要的朋友参考一下 C# WPF ListView控件的实例详解 C#的WPF作为现在微软主流的桌面程序开发平台,相比过去的MFC时代,有了非常多的不同。本人刚从MFC平台转过来,以为可以轻松上手,哪知碰到了很多问题,十分不解。不得不乖乖回去看了本书,再继续回到边左边

  • 问题内容: 我在wpf项目中有一个配置文件来存储连接字符串。但是,当我尝试获取AppSettings和ConnectionStrings时,将得到null。 WEB.config文件是这样的: 我尝试了几种方法: 他们都没有工作。 但是,这一工作: (这意味着我不能使用配置文件,这违反了我的意愿)我需要帮助。 问题答案: 我知道了!我不应该创建一个新的配置文件。项目中有一个默认的app.confi

  • 在我的项目中,我有固定的页眉和页脚,以及可变的内容。所以我已经将ContentControl放在了我的窗口中。 看起来是这样的... 我创建了两个名为page1、Page2用户控件。第1页有一个按钮,当我单击该按钮时,ContentControl有显示Page2。 所以我用button1_Click编写了下面的代码 但是在点击按钮的时候ContentControl没有改变我能做什么呢? 我的pag