概述
一、前言
WPF_ComboBox的MVVM绑定(一)
WPF_ComboBox的MVVM绑定(二)
WPF_ComboBox的MVVM绑定(三)
在第二篇中我们介绍了Enum的绑定,今天我们将Enum结合第一篇的内容进行一个最终版本的绑定。因为大多情况下,我们使用ComboBox还是会有对应的Enum的。
二、回顾
还是第一篇中的这个自定义类:
public class ComboBoxItemModel<T>
{
public string Description { get; set; }
public T SelectedModel { get; set; }
public bool IsEnable { get; set; }
}
因为我们的绑定对象是枚举类型,假设为:
public enum WorkModeE : UInt32
{
SINGLE_FREQ = 0,
DOUBLE_FREQ = 1,
TRIPLE_FREQ = 2,
QUAD_FREQ,
}
那么很显然,泛型T就应该是WorkModeE。
三、实现
public 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();
}
}
<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的MVVM绑定(三)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复