2013-04-19 2 views
0

Я работаю с Silverlight 4. Существует ComboBox, который содержит список элементов. Эти элементы имеют «ToString()»:Как определить «Короткое» имя выбранного элемента в заголовке ComboBox

public class SquadFlangViewModel 
{ 
    static SquadFlangViewModel() 
    { 
     int iFlangValuesCount = (typeof(TacticGameFlangFlangEnum)).GetFields().Length; 
     Names = new string[iFlangValuesCount]; 
     Names[(int)TacticGameFlangFlangEnum.Usual] = "Равномерно"; 
     Names[(int)TacticGameFlangFlangEnum.Left] = "Левый"; 
     Names[(int)TacticGameFlangFlangEnum.Center] = "Центр"; 
     Names[(int)TacticGameFlangFlangEnum.Right] = "Правый"; 
     Names[(int)TacticGameFlangFlangEnum.Sides] = "Фланги"; 
     Names[(int)TacticGameFlangFlangEnum.LeftAndCenter] = "Левый и Центр"; 
     Names[(int)TacticGameFlangFlangEnum.RightAndCenter] = "Правый и Центр"; 

     ShortNames = new string[iFlangValuesCount]; 
     ShortNames[(int)TacticGameFlangFlangEnum.Usual] = "="; 
     ShortNames[(int)TacticGameFlangFlangEnum.Left] = "Л"; 
     ShortNames[(int)TacticGameFlangFlangEnum.Center] = "Ц"; 
     ShortNames[(int)TacticGameFlangFlangEnum.Right] = "П"; 
     ShortNames[(int)TacticGameFlangFlangEnum.Sides] = "Ф"; 
     ShortNames[(int)TacticGameFlangFlangEnum.LeftAndCenter] = "ЛЦ"; 
     ShortNames[(int)TacticGameFlangFlangEnum.RightAndCenter] = "ПЦ"; 
    } 

    public SquadFlangViewModel(TacticGameFlangFlangEnum eVal) { _eVal = eVal; } 

    public TacticGameFlangFlangEnum Value { get { return _eVal; } } 

    private static readonly string[] Names; 

    private static readonly string[] ShortNames; 

    public override string ToString() 
    { 
     return Names[(int)_eVal]; 
    } 

    public string ShortName 
    { 
     get 
     { 
      return ShortNames[(int)_eVal]; 
     } 
    } 
} 

Вот как я связываю элементы:

<ComboBox ItemsSource="{Binding Flangs, Mode=OneTime}" 
    SelectedItem="{Binding Flang, Mode=TwoWay}"/> 

Проблема, ComboBox в ячейке сетки, что является довольно узким, и я, когда выбран пункт I Would как показать не ДОЛГОЕ описание, а короткое.

Похоже, что я должен указать ComboBox для использования свойства «ShortName», когда элемент отображается как выбранный.

Как я могу указать ComboBox для использования свойства ShortName для отображения выбранного элемента при свертывании ComboBox?

Любые идеи и другая обратная связь очень приветствуются.

ответ

0

Вы можете попробовать использовать разные шаблоны для поля со списком, когда он будет расширены стихи, когда он рухнет. Следующая ссылка показывает пример для WPF: Code Project example

1

Попытайтесь отобразить список символов, он отображает краткие сообщения.

<ComboBox ItemsSource="{Binding Flangs, Mode=OneTime}" 
    SelectedItem="{Binding Flang, Mode=TwoWay}" DisplayMemberPath="ShortNames"/> 
Смежные вопросы