在 WPF 中的组合框顶部有一个可单击的按钮

2024-02-26

我可以在组合框的下拉列表中显示一个按钮并可单击,但无法让选定的组合框项目(下拉列表已关闭)使该按钮可单击。它总是跳过按钮单击并仅打开下拉列表。我基本上希望我设置的 Button_Click 事件处理程序在单击后被调用。这是我的示例组合框,它显示按钮,但一旦位于所选项目中就不可单击:

<ComboBox x:Name="MyCombo" Width="200" Height="30" ItemsSource="{Binding ListCombo}">
        <ComboBox.Resources>
            <DataTemplate DataType="{x:Type local:ComboItemClass}">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Path=SampleText}" Width="120" />
                    <Button Width="20" Content="..." Click="Button_Click"/>
                </StackPanel>
            </DataTemplate>
        </ComboBox.Resources>
    </ComboBox>

在组合框中放置按钮是我们现在可以在 WPF 中实现的非常酷的功能之一,在我们停下来考虑是否应该这样做之前,我们(包括我)对此感到非常兴奋。

在组合框中放置一个按钮很容易让用户感到困惑。我建议您将 comobox 列表项中的数据绑定到组合框外部的按钮,这是您的用户所期望的。这样,您仍然可以通过从组合框中选择一个项目来更改按下按钮的最终结果。

EDIT:

如果您有足够的空间,列表框将非常适合您想做的事情。

    <ListBox>
        <ListBoxItem>
            <StackPanel Height="34" HorizontalAlignment="Left" Margin="12,16,0,0"  VerticalAlignment="Top" Width="430" Orientation="Horizontal">
                <Button Content="Edit"  />
                <Button Content="Delete"  />
                <TextBlock Text="Port Information here" VerticalAlignment="Center" Margin="20,0" />
            </StackPanel>

        </ListBoxItem>
        <ListBoxItem>
            <StackPanel Height="34" HorizontalAlignment="Left" Margin="12,16,0,0"  VerticalAlignment="Top" Width="430" Orientation="Horizontal">
                <Button Content="Edit"  />
                <Button Content="Delete"  />
                <TextBlock Text="Port Information here" VerticalAlignment="Center" Margin="20,0" />
            </StackPanel>

        </ListBoxItem>
        <ListBoxItem>
            <StackPanel  Height="34" HorizontalAlignment="Left" Margin="12,16,0,0"  VerticalAlignment="Top" Width="430" Orientation="Horizontal">
                <Button Content="Edit"  />
                <Button Content="Delete"  />
                <TextBlock Text="Port Information here" VerticalAlignment="Center" Margin="20,0" />
            </StackPanel>

        </ListBoxItem>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 WPF 中的组合框顶部有一个可单击的按钮 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 具有多个 OR 条件的 Countif

    我需要计算列中包含特定值的单元格数量 我目前正在使用以下代码 iVal Application WorksheetFunction COUNTIF Range A A SAL 但是 我现在需要计算有多少个单元格包含其中之一 SAL or P
  • HttpClient.execute 抛出 OutOfMemoryError

    我有一个 Android 应用程序可以发布JSONObject作为一个实体 使用ByteArrayEntity目的 这是它的样子 post setEntity new ByteArrayEntity entity getBytes UTF
  • 多线程排序算法

    我必须在 Java 中为我的算法类实现多线程合并排序和快速排序 并将它们与我的单线程版本进行比较 不过 我以前从未使用过多线程 我的代码可以是多线程的还是必须重新开始 这是我的单线程算法代码 归并排序 sort 方法是我必须实现的策略模式的
  • 如何在 R 中绘制多个堆叠直方图?

    我对 R 非常陌生 今天才开始使用它 我试图在彼此之上绘制多个直方图 我遇到过一些关于如何在彼此之上绘制两个直方图的帖子 但没有找到任何解释如何执行多个直方图的帖子 具体来说 对于我的示例 5 我想绘制 5 个值的堆积直方图 a lt c
  • 使用 Javascript 函数启动下载

    我有多个网址供用户下载 下载应该在他们点击 赞 或发布 推文 后触发 我已经成功地为两者设置了回调函数 我想知道如何使用 Javascript 以便同时触发多个下载 一种解决方案是使用window location 但这只会触发单个下载 我
  • Tkinter:为什么 lambda 函数允许我在命令参数中使用参数?

    我想了解下面发生了什么 我明白我们不能使用arg当我调用该函数时command因为这意味着此时正在执行的函数 但我不明白lambda part 考虑这段代码 command lambda x x 2 它本质上做的是同样的事情 def som
  • Python ConfigParser,键中带有冒号

    如何在 python configparser 中的值中添加分号 https stackoverflow com questions 4298073 how do i put a semicolon in a value in python
  • 响应式设计像素与百分比

    我希望有人能提供帮助 我最近在一个知名网站上观看了有关响应式网页设计的视频 我对导师采取的方法感到困惑 他基本上创建了三个样式表 大 中 小 在每个样式表中 他给出了 DIVS 的 PX 宽度 并在必要时交换图像 当然 这种方法是有缺陷的
  • 尝试使用 Jersey 创建 Restful WebService 时出错

    我正在关注this http www vogella com articles REST article html first创建 CRUD RESTful WebService 的教程 这种类型的 WebService 的教程从第 7 段
  • 找不到 css 文件 - ASP.NET Core Web 应用程序

    我已经创建了一个 asp net core Web 应用程序 我从 空 选项开始 并且正在逐步构建它 看来我的 css 文件没有被读取或找到 当我启动应用程序时 我可以看到我的 html 页面看起来不正常 当我在控制台下的 Edge 中使用
  • Rails 使用哪些测试框架? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Rails 使用哪些单元测试框架 我正在阅读这本书 Pragmatic Programmers Agile Dev with Rails 它展示
  • 在 Rails 中启用自定义格式化程序

    我为 Rails 编写了一个自定义格式化程序 module Logging class GeneralFormatter lt Logger Formatter def call severity time program name mes
  • DialogFragment - 设置初始值并在旋转后保留状态

    我创建了一个对话框片段正在建设和回归警报对话框 from 创建对话框时方法 AlertDialog 包含两个 EditText 视图 我正在设置这两个编辑文本的初始值创建对话框时该方法非常有效 直到我旋转手机并且所有更改都会丢失 恢复为初始
  • Mongodb findOneAndUpdate 函数正在插入新文档

    每当我进行更新 api 调用时 我只需要更新 serviceActiveFlag 状态 更新 api 调用后 我可以看到创建了一个带有空车辆数组的新文档 如下所示 id 59c76073c11d3929148f500f vehicle Ar
  • 应用过滤器时,宽数据表导致scrollx向后滚动

    我能够在我闪亮的应用程序中渲染数据表 但是 只要有宽表 当您对后面的列应用过滤器时 水平滚动条就会回到其初始位置 仅数字列会出现此问题 我想知道是否有一种方法可以禁用基于范围的过滤器 但保留过滤器本身 或者是否有任何其他解决方法可以解决此问
  • Oracle INSERT ALL with SELECT 给出无效规范错误

    我想使用 INSERT ALL 语句将 2 行插入 2 个不同的表中 但如果我想自己插入值 下面的查询就可以正常工作 insert all into REGIONS values 5 Africa into JOBS values ZZZZ
  • Bootstrap-datetimepicker - 动态添加显示在错误的区域

    所以通过ajax写入DB之后 我的成功函数 构建一个元素并将其附加到表中 然后 将其附加到表后 它会在新附加的行上调用日期时间选择器 然而 日期时间选择器 日历 显示在完全奇怪的地方 请参阅屏幕截图 我应该提到的一件事是这些注释位于选项卡窗
  • Pandas - 替换列值

    我知道这个问题有很多主题 但没有一种方法对我有用 所以我发布了我的具体情况 我有一个如下所示的数据框 data pd DataFrame 1 0 0 1 1 0 0 1 columns sex split data sex replace
  • 将linux的.so文件转换为windows的.dll文件

    我有一些 C 代码 具有各种头文件和 make 文件 编译为 soLinux Ubuntu 中的文件和python使用以下方式调用此共享对象的函数的程序Ctypes 现在 我想在 Windows 上使用这个程序 在窗户里 Ctypes需要一
  • 在 WPF 中的组合框顶部有一个可单击的按钮

    我可以在组合框的下拉列表中显示一个按钮并可单击 但无法让选定的组合框项目 下拉列表已关闭 使该按钮可单击 它总是跳过按钮单击并仅打开下拉列表 我基本上希望我设置的 Button Click 事件处理程序在单击后被调用 这是我的示例组合框 它