Wpf DataGrid ComboBox 列

embedded/2024/11/13 15:05:18/

遇到的问题

  1. 最开始找到的例子要写 Convert, 感觉和 Vue-Elment 的差别比较大后面找到类似与 Vue-Element UI 的写法,
  2. 开始时数值不更新

关键代码

   <DataGridTemplateColumn Header="Digit" Width="100"><DataGridTemplateColumn.CellTemplate><DataTemplate><ComboBox ItemsSource="{Binding DataContext.DigitTypes, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"SelectedValue="{Binding DigitType,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"SelectedValuePath="Id"DisplayMemberPath="Name"/></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn>

完整代码

  public class EnumDesp{public int Id { get; set; }public string Name { get; set; }}public class MainWindowViewModel : BindableBase
{private string _title = "Prism Application";public string Title{get { return _title; }set { SetProperty(ref _title, value); }}public ObservableCollection<RealDigitViewModel> Digits { get; set; }=new ObservableCollection<RealDigitViewModel>();public ObservableCollection<EnumDesp> DigitTypes { get; set; }public MainWindowViewModel(){DigitTypes = DigitTypeConverter.DigitTypes;this.Digits.Add(new RealDigitViewModel(){Name = "Abc",DigitType = 1});this.Digits.Add(new RealDigitViewModel(){Name = "Def",DigitType = 2});}}
<Window x:Class="BlankApp1.Views.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:prism="http://prismlibrary.com/"prism:ViewModelLocator.AutoWireViewModel="True"Title="{Binding Title}" Height="350" Width="525" ><Grid><Grid.RowDefinitions><RowDefinition Height="Auto"></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><Button Grid.Row="0" Command="{Binding MyCommand}" Content="Me" ></Button><DataGrid Grid.Row="1" ItemsSource="{Binding Digits}" AutoGenerateColumns="False"><DataGrid.Columns><DataGridTextColumn Header="Name" Binding="{Binding Name}"/><DataGridTemplateColumn Header="Digit" Width="100"><DataGridTemplateColumn.CellTemplate><DataTemplate><ComboBox ItemsSource="{Binding DataContext.DigitTypes, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"SelectedValue="{Binding DigitType,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"SelectedValuePath="Id"DisplayMemberPath="Name"/></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn></DataGrid.Columns></DataGrid></Grid>
</Window>

http://www.ppmy.cn/embedded/33021.html

相关文章

《QT实用小工具·五十四》果冻弹出效果的动画按钮

1、概述 源码放在文章末尾 该项目实现动画按钮&#xff0c;鼠标放在按钮上可以弹性拉出的三个按钮&#xff0c;使用贝塞尔曲线实现&#xff0c;项目demo显示如下所示&#xff1a; 项目部分代码如下所示&#xff1a; #ifndef WATERCIRCLEBUTTON_H #define WATERCIRCLEBUTTON…

MLP一夜被干掉?革命性新网络KAN【第一篇-base】

要看完哦&#xff0c;文末彩蛋&#xff01; 用“极市平台”的导读语来说&#xff1a;新网络KAN基于柯尔莫哥洛夫-阿诺德定理&#xff0c;带着更少的参数、更强的性能、更好的可解释性来了&#xff0c;深度学习架构革新进入新时代&#xff01; 目录 导语 ​编辑 KAN的基础理论…

公考学习平台|基于SprinBoot+vue的公考学习平台(源码+数据库+文档)

公考学习平台目录 目录 基于SprinBootvue的公考学习平台 一、前言 二、系统设计 三、系统功能设计 5.1用户信息管理 5.2 视频信息管理 5.3公告信息管理 5.1论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

系统如何做好数据质量管理

对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的各类数据质量问题&#xff0c;进行识别、监控、预警、处理等一系列管理活动&#xff0c;并通过改善和提高管理水平使得数据质量获 得进一步提高。 2术语和定义 2.1数据质量 data quality 2.2…

QSqlDatabase的数据库路径或名称问题

在Qt的数据库编程中&#xff0c;先是设置数据库的类型&#xff0c;然后是设置数据库文件的路径&#xff0c;或者数据库名称。若有数据库的用户名、密码&#xff0c;则分别调用setUserName(“”)、setPassword(“”)来设置用户名和密码&#xff1b;若没有&#xff0c;则省略用户…

Redis与Mysql双写一致性如何保证

前言 之前我就在面试被问到Redis与MySQL双写一致性如何保证&#xff1f;当时没答出来,回去做了复盘。下面这些引用了网络上给出的方案&#xff0c;加上了我自己的理解&#xff0c;希望对大家有帮助。 这道题其实就是在问缓存和数据库在双写场景下&#xff0c;一致性是如何保证…

40道Linux结业测试题,有解析,有答案

1.若root登录操作后的当前目录为&#xff1a;/usr/local&#xff0c;键入cd ~命令后&#xff0c;其当前目录变为&#xff08; &#xff09;。 A. /home/root B. /usr/local C. /root D. /home 2.如果当前目录为/home&#xff0c;进入目录/home/stu/test的命令是&#xff08; &a…

【JAVA进阶篇教学】第八篇:Java链接MySql数据库异常

博主打算从0-1讲解下java进阶篇教学&#xff0c;今天教学第八篇&#xff1a;Java链接MySql数据库异常 本文主要记录下日常项目中java链接mysql异常情况&#xff0c;并且提供解决方案&#xff01;本文会持续更新&#xff0c;有友友们留言的异常的话&#xff0c;我也会整理提供进…