2012-05-11 8 views
1

У меня есть редактируемый combobox, где я использую ItemTemplate, который использует MultiBinding. Элементы, отображаемые при увеличении отображения со списком, я ожидаю. Однако, когда выбран элемент, вместо него отображается текст. Я видел сообщения, которые предлагают переопределить ToString(), но я хотел бы избежать этого, если это возможно.WPF Редактируемый ComboBox с многосвязным отображением типа объекта, когда он выбран

Объект, к которому я привязан, представляет собой коллекцию объектов UserDetail, среди других UserDetail имеет имя First и Last Name и BarcodeID, которые я показываю как строку для каждого элемента в ComboBox. Я хочу отобразить ту же строку, что и выбранный элемент. Вместо этого я вижу MyNameSpace.UserDetail

Вот xaml для моего списка. Скажите, пожалуйста, где я буду неправильно:

<ComboBox IsEditable="True" IsReadOnly="False" Name="myUser" 
      TextBoxBase.TextChanged="myCombo_TextChanged" 
      SelectionChanged="myCombo_SelectionChanged"> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock> 
       <TextBlock.Text> 
        <MultiBinding StringFormat="{}{1}, {0}, {2}"> 
         <Binding Path="FirstName" /> 
         <Binding Path="LastName" /> 
         <Binding Path="BarcodeId" /> 
        </MultiBinding> 
       </TextBlock.Text> 
      </TextBlock> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 

FYI, The BarcodeID является для дополнительного считывателя штрих-кодов значком.

ответ

0

Вы должны привязывать только текстовые данные к выпадающему значению с IsEditable = true.

Удалить IsEditable="True"

Смотрите here для получения дополнительной информации.

+0

Поскольку я использую читателя USB штрих-кода я думаю, что нужно выпадающий редактируемой, так как сканер штрих-кодов выглядит точно так же, как клавиатура в ComboBox. Кстати, я задаю этот вопрос от имени другого разработчика. Я так и не использовал считыватель штрих-кода. FYI, я попытался переопределить метод ToString() на моем объекте EntityFramework и работал как ожидалось. Возможно, мне придется рассмотреть метод расширения, предполагая, что я могу сделать переопределения в методе расширения. – KyleLib

+0

Вы попробовали? IsEditable не означает, что вы думаете. –

+0

Апологеты за отказ от этого. Проект закончился отменой. – KyleLib

 Смежные вопросы

  • Нет связанных вопросов^_^