首页 > 其他分享 >将绑定到itemsource的控件里面的元素绑定到itemsource数据源之外的viewmodel中的数据

将绑定到itemsource的控件里面的元素绑定到itemsource数据源之外的viewmodel中的数据

时间:2023-12-11 13:13:44浏览次数:28  
标签:控件 数据源 绑定 itemsource MvvmLight GalaSoft

1 <ComboBox.ItemTemplate>
2     <DataTemplate>
3         <StackPanel Orientation="Horizontal">
4             <TextBlock Width="100" Text="{Binding Key}" />
5 <Button Content="X" Command="{Binding DataContext.DeleteSoundCommand,RelativeSource={RelativeSource AncestorType=UserControl}}" /> 6 </StackPanel> 7 </DataTemplate> 8 </ComboBox.ItemTemplate>

 

 

 

//WPF中提供了InvokeCommandAction可直接在前端xaml文件中触发Viewmodel中的事//件,但该方法存在一个缺陷,只能通过CommandParameter传递参数,而且不能传递鼠标事件arg参数。

InvokeCommandAction的使用方法如下:

首先引入:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

 

<Button>

    <i:Interaction.Triggers>

        <i:EventTrigger EventName="MouseEnter" >

            <i:InvokeCommandAction Command="{Binding FooCommand}" CommandParameter=abc/>

        </i:EventTrigger>

    </i:Interaction.Triggers>

</Button>

 

使用Mvvmlight中的EventToCommand, 可解决上述问题。Mvvmlight对System.Windows.Interactivity.dll的某些方面进行了扩展,能够传递事件参数,需要引用GalaSoft.MvvmLight.Extras.dll,实现如下:

xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras"

 

<Button>

    <i:Interaction.Triggers>

        <i:EventTrigger EventName="MouseEnter" >

             <cmd:EventToCommand Command="{Binding FooCommand}"

                 PassEventArgsToCommand="True" />

        </i:EventTrigger>

    </i:Interaction.Triggers>

</Button>

 

标签:控件,数据源,绑定,itemsource,MvvmLight,GalaSoft
From: https://www.cnblogs.com/wangkunrecord/p/17893956.html

相关文章

  • 无涯教程-MFC - 窗口控件
    Windows控件是用户可以与之交互以输入或操作数据的对象,它们通常出现在对话框或工具栏上。Sr.No.Controls&描述1StaticControl静态Static控件向用户显示信息,它可以用于显示颜色,几何形状或图片,如图标,位图或动画。2AnimationControl动画控件是一个以AVI格式显示音频剪......
  • 无涯教程-MFC - 控件管理
    在MFC应用程序中,以可视方式将控件添加到应用程序后,如果要在代码中引用它,则可以基于该控件或与该控件关联来声明变量。MFC库允许您为应用程序中使用的某些控件声明值或控件变量的两种类型的变量。一个变量用于存储在控件中的信息,也称为ControlVariable/Instance.另一个变量称......
  • 驱动绑定 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/driver-model/binding.html驱动绑定驱动绑定是将设备与能够控制它的设备驱动程序关联起来的过程。通常由总线驱动程序处理这一过程,因为总线特定的结构用于表示设备和驱动程序。使用通用设备和设备驱动程序结构后,大部分绑定可......
  • MFC CListVtrl 控件简单测试
    ▲样式Demo关联控件变量m_CList,在属性中将视图(View)设置成Report(报表)模式。在BOOLCMFCApplication4LlisBoxDlg::OnInitDialog()初始化函数中添加测试代码://TODO:在此添加额外的初始化代码//m_CList.SetView(1);//视图View要改成Report报表模式//设置风格样......
  • 动手实现基于 JSON 和 OData 两种数据模型的 Web 应用表格控件行项目的添加和删除
    文章标题描述的需求是笔者在工作和网络上经常收到的前端开发领域的咨询话题之一。Web应用的表格控件,在切换到编辑模式下之后,给用户提供了行项目的添加和删除功能。基于MVC和MVVM框架的前端控件,都离不开Model即数据模型层。笔者工作中使用最多的模型层实现技术,即JSON模型......
  • 浅谈WPF之控件拖拽与拖动
    使用过office的visio软件画图的小伙伴都知道,画图软件分为两部分,左侧图形库,存放各种图标,右侧是一个画布,将左侧图形库的图标控件拖拽到右侧画布,就会生成一个新的控件,并且可以自由拖动。那如何在WPF程序中,实现类似的功能呢?今天就以一个简单的小例子,简述如何在WPF中实现控件的拖拽和拖......
  • 界面控件DevExpress中文教程 - 如何用Office File API组件填充PDF表单
    DevExpressOfficeFileAPI是一个专为C#,VB.NET和ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装MicrosoftOffice,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS,XLSx,DOC,DOCx,RTF,CSV和SnapReport等企业级文......
  • 无涯教程-Angular7 - 事件绑定
    在本章中,无涯教程将讨论事件绑定在Angular7中的工作方式,当用户以键盘移动,鼠标单击或鼠标悬停的形式与应用程序交互时,它将生成一个事件。需要处理这些事件以执行某种操作,让无涯教程考虑一个示例以更好地理解这一点。app.component.html<!--Thecontentbelowisonlyaplace......
  • WPF 绑定binding都有哪些事件
    在WPF中,源属性(SourceProperty)指的是提供数据的属性,通常是数据模型或者其他控件的属性,而目标属性(TargetProperty)则是数据绑定的目标,通常是绑定到控件的属性,例如TextBlock的Text属性。数据绑定将源属性的值自动更新到目标属性中。 主要包含以下几个事件:1. UpdateSourceTrigg......
  • 打工笔记----------------------------跨进程控制SysTreeView32树状图控件的问题
    跨进程控制SysTreeView32树状图控件的问题,啥也不说了,直接上代码:publicpartialclassForm1:Form{//定义常量publicconstintWM_LBUTTONDBLCLK=0x020B;//左键双击消息publicconstintWM_RBUTTONDOWN=0x0204;//右键按下消息......