当前位置: 首页 > news >正文

WPF MVVM下 ItemsControl条目命令绑定传参

xaml:

  <ItemsControl x:Name="itemsControl" ItemsSource="{Binding TreeViewModelForFlowList}"><!--  定义ItemsPanel,设置项之间的间距  --><ItemsControl.ItemsPanel><ItemsPanelTemplate><StackPanel Margin="10" Orientation="Vertical" /></ItemsPanelTemplate></ItemsControl.ItemsPanel><!--  定义项模板  --><ItemsControl.ItemTemplate><DataTemplate><!--  每个项的外边框  --><BorderMargin="0,2"Padding="8"BorderThickness="1"CornerRadius="4"><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="*" /><!--  第一个按钮占剩余空间  --><ColumnDefinition Width="Auto" /><!--  第二个按钮自适应内容  --><ColumnDefinition Width="5" /><!--  间距  --><ColumnDefinition Width="Auto" /><!--  第三个按钮自适应内容  --></Grid.ColumnDefinitions><!--  第一个大按钮  --><telerik:RadButtonGrid.Column="0"Height="40"Margin="0,0,5,0"Command="{Binding DataContext.FlowControlCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}"CommandParameter="{Binding}"Content="{Binding FlowDescription}"FontSize="14"FontWeight="SemiBold"Foreground="White" /><!--  第二个小按钮  --><ButtonGrid.Column="1"Width="60"Height="30"Background="#6C757D"Content="{Binding TreeViewActionModel}"FontSize="12"Foreground="White" /></Grid></Border></DataTemplate></ItemsControl.ItemTemplate></ItemsControl>

界面:

命令方法:

  private ObservableCollection<TreeViewModelForFlow> _treeViewModelForFlowList;/// <summary>/// 按钮界面配置列表/// </summary>public ObservableCollection<TreeViewModelForFlow> TreeViewModelForFlowList{get => _treeViewModelForFlowList;set { this.RaiseAndSetIfChanged(ref _treeViewModelForFlowList, value); }}public void FlowControl(TreeViewModelForFlow flow)
{}

要点,直接绑定命令会找不到,直接写命令绑定是在ItemsControl的每个项中绑定的,就像按钮的Content绑定一样,绑定的是每个项的属性,但想要的效果实际上是在主ViewModel中,需要使用 RelativeSource 找到父级DataContext,即为主ViewModel。

或者使用 ElementName 绑定

Command="{Binding ElementName=itemsControl, Path=DataContext.FlowControlCommand}"

http://www.dtcms.com/a/521032.html

相关文章:

  • 贵州网站制作公司电话wordpress有留言时邮件提醒
  • Python 脚本在工作日(周一到周五)的 8:00 到 19:00 之间持续运行,并在其他时间暂停(延时)
  • 婚庆网站大全深圳企业网站制作公司查询
  • 当城市有了“空间智能体”:一座长江首城的智慧蝶变
  • 机械类做的最好的网站网站开发代理江苏
  • 让别人做网站图片侵权网站简易后台
  • seo针对网站做策划大型网站开发合同
  • Macao资料生成程序,全新的UI 三端自适应PHP空间
  • 1Panel 安装与使用全指南:从部署到实战运维
  • Katalon Studio自愈测试功能
  • 非java、python、c/c++、perl、php、sql等的文章
  • 企业网站的建设与应用开题报告自己搭建app
  • 实验三:3-8线译码器设计
  • 深入浅出:马尔科夫链完全指南
  • 国外域名抢注网站seo顾问什么职位
  • 怎么做网站dns加速销售订单管理系统软件
  • DevOps工具链选型,Atlassian or TikLab哪一款更好用?
  • 网站实现搜索功能网站开发 平面设计
  • 河北建设厅官网站首页手机兼职有哪些
  • 【经典书籍】C++ Primer 第16章模板与泛型编程精华讲解
  • 做体育的网站网络推广优化是干啥的
  • 自己人网站建设网站推广策划方案大数据精准获客
  • Linux yum安装(安装docker)
  • AI未来--AI在制造业的最佳落地实践
  • 安徽省建设信息网站企业网站管理系统使用教程
  • 家具行业网站建设外链建设都需要带网站网址
  • UVC真空共晶炉哪个公司好
  • [nanoGPT] GPT模型架构 | `LayerNorm` | `CausalSelfAttention` |`MLP` | `Block`
  • 教育网校Web端源码开发难点剖析:互动课堂、白板与大小班课功能实现
  • 门户网站优点想学会网站建设要会什么