WPF DataGrid ComboBoxColumn绑定Enum类型(MVVM模式)
需要在comboBoxColumn绑定一列用于选择,但是绑定总是不成功,下拉列表始终为空,经查阅资料方成功,特此记录。
1.model定义
定义了一个枚举类,用于绑定到comboboxcolumn
2.viewmodel
viewmodel中定义了集合,绑定到datagrid的ItemsSource上
3.Xaml文件中
①因为comboboxcolumn只能绑定静态资源还是啥的(ps:我也不知道,萌新一个,百度上看来的,别人这么做我就跟着做了),总之就是先创建这个,其中,这个j:JSign,JSign是你创建的枚举类型,然后j是它所在的名称控件,要先引用一下。别忘了这个MethondName = “GetValues”,我最开始百度有个回答就是这个,然后没有加这条,然后我看别人的回答觉得都一样,就半天没弄出来,最后才看到这条。
②将在viewmodel中创建的集合绑定到datagrid,记得往里面添加数据,没数据的话,datagrid里会不显示行,就看不到combox的下拉列表啦。
③这种下拉列表,有两种方式实现,一种是创建Templatecolumn,还有一种就是comboboxcolumn,这个百度上一搜全是这两种,甚至都长得一样,我的当然也是,因为我也是抄来的,但还是给自己留个记录。
a.ComboBoxColumn实现
b.TemplateColumn实现
最后效果图差不多就是这样:
参考链接:
https://www.cnblogs.com/lekko/archive/2012/11/23/2784789.html
WPF DataGrid ComboBoxColumn绑定Enum类型(MVVM模式)需要在comboBoxColumn绑定一列用于选择,但是绑定总是不成功,下拉列表始终为空,经查阅资料方成功,特此记录。1.model定义定义了一个枚举类,用于绑定到comboboxcolumn2.viewmodelviewmodel中定义了集合,绑定到datagrid的ItemsSource上3.Xaml文件中①因为comboboxcolumn只能绑定静态资源还是啥的(ps:我也不知道,萌新一个,百度上看来
<Window x:Class="
WPF
_
MVVM
_Demo1.View.UserManage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.mic.
ComboBox
是一个非常常用的下拉菜单界面控件,它的数据源ItemsSource既可以
绑定
一个List列表,也可以是一个字典,本篇文章就讲这些内容展开讲解。
首先,讲解几个常用的属性概念:
ItensSource:用于指定下拉列表
绑定
的List数据对象;
SelectedIndex :下拉列表中选中行的索引;
DisplayMe
1、
枚举
绑定
combox的ItemsSource
ItemsSource
绑定
的是个集合值,要想
枚举
绑定
ItemsSource,首先应该想到的是把
枚举
值变成集合。
方法一:使用资源里的ObjectDataProvider
如以下
枚举
public
enum
People
Enum
前端
绑定
:
<Window x:Class="ComboxT
WPF
DataGrid
绑定
是一种将数据源
绑定
到
WPF
DataGrid
控件的方法,以便以可视化的方式展示数据。在
WPF
中,可以使用多种方式
绑定
DataGrid
。其中,最常用的方式包括
绑定
到数据表格以及
绑定
到数据集。
对于
绑定
到数据表格的方式,需要先使用数据源控件建立数据表格,然后使用
WPF
DataGrid
控件将其
绑定
。这种方式的优点在于数据
绑定
更加灵活,可以根据具体情况选择
绑定
单个表格、多个表格、甚至是不同数据源的表格。不过,需要注意的是,在处理数据表格的时候,需要将其
绑定
到正确的数据源,否则会导致数据丢失或者无法正常显示。
另一种方式是
绑定
到数据集,这种方式最大的优点就是可以自动将整个数据集的数据
绑定
到
WPF
DataGrid
控件上,不需要手动处理每个数据表格。不过,需要注意的是,如果数据集比较大,可能会导致性能下降,同时也不够灵活,无法针对具体的数据表格进行更细致的操作。
无论是哪种方式,对于
WPF
DataGrid
绑定
,需要注意以下几个方面:
1.正确设置数据源、
绑定
属性以及展示方式;
2.数据
绑定
时注意调用缓存机制,以便提高性能;
3.数据
绑定
时遵循
MVVM
框架中的命令式
绑定
方式,以便更好地控制数据的展示和交互。
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox VerticalContentAlignment="Center" DisplayMemberPath="DisplayName" SelectedValuePath="Value"
ItemsSource="{Binding DataContext.SeriesItems,RelativeSource={RelativeSource Findancestor,AncestorType={x:Type UserControl}}}"
SelectedValue="{Binding SeriesType, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>