组合框的默认值(设置为ONCE)
本文关键字:ONCE 设置 默认值 组合 | 更新日期: 2023-09-27 18:20:17
我在SO和网络上读了很多东西,但没有找到答案。。。我得到了一个绑定到Collection的ComboBox,Collection是代码隐藏属性的一个属性,如下所示:
<ComboBox ItemsSource="{Binding Path=LocalizationUtil.AvailableLocales}"/>
这是可行的,但问题是,当我的UI加载时,没有选择默认值,我想设置一个值,因为我知道我的Collection至少包含字符串"default"。我看到很多使用SelectedItem
或SelectedValue
的东西,但这创建了一种绑定,我希望它在一开始只启动一次。我该怎么做?
首先你必须创建一个像这样的枚举,这样你就可以在组合框上显示它:
[Flags]
public enum Actions
{
[Description("None")]
None = 0,
[Description("Edit")]
Edit = 1,
[Description("Print")]
Imprimir = 2,
}
之后,您必须创建一个方法,将IEnumerable返回到您的属性,如下所示:
/// <summary>
/// Get the list with names and descriptions of Enum
/// </summary>
/// <typeparam name="T">Enum Type</typeparam>
/// <param name="usarNome">if true the key is the Enum name</param>
/// <returns>List with names and descriptions</returns>
public static IEnumerable<KeyValuePair<string, T>> GetEnumList<T>(bool usarNome)
{
var x = typeof(T).GetFields().Where(info => info.FieldType.Equals(typeof(T)));
return from field in x
select new KeyValuePair<string, T>(GetEnumDescription(field, usarNome), (T)Enum.Parse(typeof(T), field.Name, false));
}
然后你在构造函数中或任何你想定义的地方定义它:
MyActions = EnumHelpers.GetEnumList<Actions>(false);
希望它能帮助你。
<ComboBox ItemsSource="{Binding Path=LocalizationUtil.AvailableLocales}" SelectedIndex="0"/>