一、前言
WPF_ComboBox的MVVM绑定(一)
WPF_ComboBox的MVVM绑定(二)
WPF_ComboBox的MVVM绑定(三)
在第二篇中我们介绍了Enum的绑定,今天我们将Enum结合第一篇的内容进行一个最终版本的绑定。因为大多情况下,我们使用ComboBox还是会有对应的Enum的。
二、回顾
还是第一篇中的这个自定义类:
复制代码
1
2
3
4
5
6
7
8public class ComboBoxItemModel<T> { public string Description { get; set; } public T SelectedModel { get; set; } public bool IsEnable { get; set; } }
因为我们的绑定对象是枚举类型,假设为:
复制代码
1
2
3
4
5
6
7
8
9
10
11public enum WorkModeE : UInt32 { SINGLE_FREQ = 0, DOUBLE_FREQ = 1, TRIPLE_FREQ = 2, QUAD_FREQ, }
那么很显然,泛型T就应该是WorkModeE。
三、实现
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21public List<ComboBoxItemMode<WorkModeE>> WorkModes { get; set; } = new List<ComboBoxItemMode<WorkModeE>>(); private void InitWorkMode() { foreach (WorkModeE item in Enum.GetValues(typeof(WorkModeE))) { WorkModes.Add(new ComboBoxItemMode<WorkModeE> { Description = item.ToString(), SelectedModel = item, IsEnable = true }); }; } private WorkModeE workMode = WorkModeE.SINGLE_FREQ;//决定初始化的时候是的WorkMode public WorkModeE WorkMode { get { return workMode; } set { workMode= value; RaisePropertyChanged(); } }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12<ComboBox DisplayMemberPath="Description" ItemsSource="{Binding WorkModes}" SelectedValue="{Binding WorkMode}" SelectedValuePath="SelectedModel"> <ComboBox.ItemContainerStyle> <Style TargetType="ComboBoxItem"> <Setter Property="IsEnable" Value="{Binding IsEnable }" /> </Style> </ComboBox.ItemContainerStyle> </ComboBox>
如果T类型是枚举,那么其实Description也可以是T类型的,但是为了方便其他类型的绑定,这里还是保留不修改了。
最后
以上就是悲凉流沙最近收集整理的关于WPF_ComboBox的MVVM绑定(三)的全部内容,更多相关WPF_ComboBox内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复