DefaultValue для ComboBox (устанавливается ОДИН РАЗ) - PullRequest
2 голосов
/ 12 января 2012

Я много чего читал здесь, в SO и в Интернете, но не нашел ответа ... Я получил ComboBox, который привязан к коллекции, которая является свойством свойства code-behind, например:

<ComboBox ItemsSource="{Binding Path=LocalizationUtil.AvailableLocales}"/>

Это работает, но дело в том, что когда мой пользовательский интерфейс загружен, значение по умолчанию не выбрано, и я хотел бы установить значение, потому что я ЗНАЮ, что моя Коллекция содержит по крайней мере строку "по умолчанию". Я видел много вещей, использующих SelectedItem или SelectedValue, но это создает своего рода привязку, и я хочу, чтобы он запускался только ОДИН РАЗ при запуске. Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Сначала вам нужно создать перечисление, подобное этому, чтобы вы могли показать его в выпадающем списке:

[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);

Надеюсь, это поможет вам.

2 голосов
/ 12 января 2012
<ComboBox ItemsSource="{Binding Path=LocalizationUtil.AvailableLocales}" SelectedIndex="0"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...