当前位置: 首页> 游戏> 评测 > 扬州推广公司_感染了病毒怎么办_营销方式和渠道_培训机构是干什么的

扬州推广公司_感染了病毒怎么办_营销方式和渠道_培训机构是干什么的

时间:2025/7/15 6:50:47来源:https://blog.csdn.net/Denuin/article/details/145992097 浏览次数:0次
扬州推广公司_感染了病毒怎么办_营销方式和渠道_培训机构是干什么的

在WPF中使用ComboBox绑定枚举类型

一、实例

定义Enum:

internal enum StatusEnum
{[Description("待处理")]Pending,[Description("进行中")]InProgress,[Description("已完成")]Completed
}

定义扩展类,获取Description特性的内容:

internal static class EnumExtensions
{public static string GetDescription(this Enum value){var field = value.GetType().GetField(value.ToString());var attribute = field?.GetCustomAttribute<DescriptionAttribute>();return attribute?.Description ?? value.ToString();}
}

值转换

internal class EnumToDescriptionConverter : IValueConverter
{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if (value is Enum enumValue){return enumValue.GetDescription();}return value.ToString();}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){return Enum.Parse(targetType, value.ToString());}
}

对象数据源

    <UserControl.Resources><ObjectDataProvider x:Key="StatusEnumProvider" MethodName="GetValues" ObjectType="{x:Type sys:Enum}"><ObjectDataProvider.MethodParameters><x:Type TypeName="local:StatusEnum" /></ObjectDataProvider.MethodParameters></ObjectDataProvider></UserControl.Resources>

ComboBox 绑定数据源

 <ComboBox ItemsSource="{Binding Source={StaticResource StatusEnumProvider}}"SelectedItem="{Binding SelectedStatus}"Width="140" FontSize="14"FontFamily="Microsoft Yahei UI"Cursor="Hand" ><ComboBox.ItemTemplate><DataTemplate><TextBlock Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}"/></DataTemplate></ComboBox.ItemTemplate></ComboBox>

SelectedStatus要在ViewModel里定义

二、ObjectDataProvider

ObjectDataProvider 类在XAML中创建对象并将其用作数据源。

  <ObjectDataProvider x:Key="StatusEnumProvider"MethodName="GetValues" ObjectType="{x:Type sys:Enum}"><ObjectDataProvider.MethodParameters><x:Type TypeName="local:StatusEnum" /></ObjectDataProvider.MethodParameters></ObjectDataProvider>
  • ObjectType - 数据要返回的对象类型
  • MethodName - 要在 System.Enum类型上运行的方法名称
  • MethodParameters - 要提供给 MethodName 方法的值的集合

等效于以下代码:

 var itemsSource= System.Enum.GetValues(typeof(StatusEnum));
关键字:扬州推广公司_感染了病毒怎么办_营销方式和渠道_培训机构是干什么的

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: