WPF .Net6框架下, 使用 Microsoft.Xaml.Behaviors.Wpf 的Interaction.Triggers特性,实现ComboBox 在展开时,触发刷新列表内容的动作

这篇具有很好参考价值的文章主要介绍了WPF .Net6框架下, 使用 Microsoft.Xaml.Behaviors.Wpf 的Interaction.Triggers特性,实现ComboBox 在展开时,触发刷新列表内容的动作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

ComboBox 在WPF中是常见的控件。
一般情况下,在绑定好数据源后,其内容是固定的。
当然,你也可以实时刷新,但这将带来较高的资源消耗。
因此有个折中的办法:
只在它在展开时,自动更新列表内容。

框架环境

当前文章基于 .Net6框架,其他框架不适用。

步骤1:安装Nuget组件:Microsoft.Xaml.Behaviors.Wpf

这个是用于平替winform某个组件的WPF版本。
Nuget直接安装即可。

步骤2: 添加XAML开头

 xmlns:behaviour="http://schemas.microsoft.com/xaml/behaviors"

引用你安装的组件。

步骤3:编辑你 ComboBox的xaml部分

<ComboBox Margin="50,0,0,0"  Name="ComboBox_ComPorts" 
                                      materialDesign:HintAssist.Hint="{DynamicResource DicText_Overview_RefreshComportHints}" 
                                      materialDesign:HintAssist.HintOpacity=".26"
                                      
                                  ItemsSource="{Binding ComPorts}"  Height="Auto" Width="180" VerticalAlignment="Center" 
                                  SelectedItem="{Binding SelectedComPort, Mode=TwoWay}"
                                  ToolTip="{Binding SelectedComPort}">

                        <behaviour:Interaction.Triggers>
                            <behaviour:EventTrigger EventName="DropDownOpened">
                                <behaviour:InvokeCommandAction Command="{Binding GetComPortsCommand}" />
                            </behaviour:EventTrigger>
                        </behaviour:Interaction.Triggers>
                    </ComboBox>

触发展开后,刷新列表的,就是以下代码块

						<behaviour:Interaction.Triggers>
                            <behaviour:EventTrigger EventName="DropDownOpened">
                                <behaviour:InvokeCommandAction Command="{Binding GetComPortsCommand}" />
                            </behaviour:EventTrigger>
                        </behaviour:Interaction.Triggers>

它通过Command的方式,绑定并触发GetComPortsCommand 的方法。
最终实现了这个刷新的动作。

其他

有关Command的实现,可以参考我其他的博客。文章来源地址https://www.toymoban.com/news/detail-703072.html

到了这里,关于WPF .Net6框架下, 使用 Microsoft.Xaml.Behaviors.Wpf 的Interaction.Triggers特性,实现ComboBox 在展开时,触发刷新列表内容的动作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【WPF.NET开发】WPF中的XAML资源

    使用 XAML 中的资源 静态和动态资源 静态资源 动态资源 样式、DataTemplate 和隐式键 资源是可以在应用中的不同位置重复使用的对象。 资源的示例包括画笔和样式。 本概述介绍如何使用 Extensible Application Markup Language (XAML) 中的资源。 你还可以使用代码创建和访问资源。  备注

    2024年01月17日
    浏览(63)
  • 基于.net6的WPF程序使用SignalR进行通信

    之前写的SignalR通信,是基于.net6api,BS和CS进行通信的。 .net6API使用SignalR+vue3聊天+WPF聊天_signalr wpf_故里2130的博客-CSDN博客 今天写一篇关于CS客户端的SignalR通信,后台服务使用.net6api 。其实和之前写的差不多,主要在于服务端以后台进程的方式存在,而客户端以exe方式存在,

    2024年02月16日
    浏览(52)
  • 【.NET深呼吸】将XAML放到WPF程序之外

    上一篇水文中,老周说了一下纯代码编写 WPF 的大概过程。不过,还是不够的,本篇水文中咱们还要更进一步。 XAML 文件默认是作为资源打包进程序中的,而纯代码编写又导致一些常改动的东西变成硬编码了。为了取得二者平衡,咱们还要把一些经常修改的东西放到 XAML 文件

    2024年02月09日
    浏览(42)
  • Wpf在.Net 6 下该用哪个Mvvm框架-Microsoft.Toolkit.Mvvm

    前言 在Wpf下最常使用的就是Mvvm模式了,有自己造轮子构建Mvvm框架的,也有使用现成的开源项目,我之前一直使用的是轻量级的MvvmLight了,这个框架还是非常不错的,使用也简单,不占用太大空间,其中最喜欢的莫过于全局Messenger了,可谓是神器。最近有个项目使用.Net6开发

    2024年02月06日
    浏览(53)
  • Wpf使用Behaviors包

    日常开发中必不可少会用到命令,比如button自带了Command和CommandParameter属性。 让我们没有自带这样的command属性的控件,也可以Command,可以使用Behaviors包。 安装Microsoft.Xaml.Behaviors.Wpf 2. 资源引用 让Rectangle控件使用Command

    2024年02月11日
    浏览(35)
  • Microsoft.Xaml.Behaviors绑定ListView 事件

    .NET Core 6.0 开发WPF应用程序,使用Microsoft.Xaml.Behaviors事件绑定: 首先应用命名空间:   xmlns:i=\\\"http://schemas.microsoft.com/xaml/behaviors\\\"       Xaml代码如下: 后端写法:  注意如果方法签名同Xaml绑定的类型不一致,将导致事件无法触发

    2024年02月11日
    浏览(44)
  • .net6下[WPF+yolov5+opencvsharp]

    1. 简介 机缘巧合下写的一个工程,本来是作为商家视觉识别上位机的替代品,但是最后没用上,因此只开发了一半(厂家升级了摄像头和软件) 该工程基于WPF的.net6+mvvm 调用摄像头进行识别 opencv开摄像头(不想自己封装win32api),yolov5对图像进行检测 2.引用库 MVVM CommunityToolkit.Mv

    2024年02月08日
    浏览(36)
  • WPF使用Microsoft.Toolkit.Mvvm框架记录

    前言 为了解决WPF UI与程序逻辑之间得到解耦,所以使用Microsoft.Toolkit.Mvvm框架来实现,说真的开发逻辑真的有些不适应,不过理解就好。框架大体支持ICommand、IMessenger等。 MVVM是Model-View-ViewModel的简写。它本质上就是MVC (Model-View- Controller)的改进版。即模型-视图-视图模型。分

    2024年02月13日
    浏览(48)
  • .NET6: 开发基于WPF的摩登三维工业软件 (7)

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 做为一个摩登的工业软件,提供可编程的脚本能力是必不可少的能力。脚本既可以方便用户进行二次开发,也对方便对程序进行自动化测试。本文将结合

    2024年02月05日
    浏览(46)
  • .net6中WPF的串口通信和USB通信

    之前写过串口通信,不过是winform的。 c#使用串口进行通信_c# 串口通信_故里2130的博客-CSDN博客 今天说一下,.net6中wpf的串口通信和USB通信,在工控行业中,这2种的方式非常多,还有网口通信,它们都是用来和硬件打交道的,进行交互信息。 一、串口通信 1.安装System.IO.Ports

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包