#silverlight #combobox
#silverlight #combobox
Вопрос:
Я создаю datatemplate для combobox следующим образом:
<DataTemplate x:Key="AircraftTypeTemplate">
<StackPanel Orientation="Horizontal" Width="340">
<ComboBox>
<ComboBoxItem>CJ1</ComboBoxItem>
<ComboBoxItem>CJ3</ComboBoxItem>
<ComboBoxItem>Bravo</ComboBoxItem>
<ComboBoxItem>Excel</ComboBoxItem>
<ComboBoxItem>Sovereign</ComboBoxItem>
</ComboBox>
</StackPanel>
</DataTemplate>
Он отображается нормально, но я хотел бы иметь возможность связывать значение с каждым из элементов без необходимости привязывать его к какому-либо контексту данных. Например, я хотел бы, чтобы элемент comboboxitem CJ1 имел значение 5. Как бы я установил их в XAML?
Нравится:
<ComboBoxItem Value="5">CJ1</ComboBoxItem>
Спасибо!
Ответ №1:
Вы можете установить Name
свойство в качестве любой произвольной строки и использовать его. Для большей гибкости вы можете использовать Tag
свойство, которое в соответствии с MSDN:
Возвращает или задает произвольное значение объекта, которое может использоваться для хранения пользовательской информации об этом объекте.
Подробнее об этом можно прочитать Tag
здесь. Tag
Я бы сказал, что, вероятно, лучше, чем подчиняться вашей воле, и вы можете вставить строку так же легко, как . Name
Tag
Name
Комментарии:
1. Спасибо! Еще одна вещь: как бы я привязал SelectedValue из combobox к тегу?
2. Нет проблем. Привязка
SelectedValue
кTag
будет выглядеть<ComboBox SelectedValuePath="Tag" />
следующим образом.3. Сработало как шарм — спасибо!