AutoCompleteBox не сохраняет текст - PullRequest
1 голос
/ 22 сентября 2009

У меня есть тестовый проект Silverlight, в котором я возвращаю список ...

public class ProductInfo
{

    public override string ToString()
    {
        return Name + " - " + Description;
    }

    public string Name { get; set; }
    public string Description { get; set; }
}

Он успешно возвращает имя и описание в настроенный AutoCompleteBox со следующим определенным шаблоном DataTemplate:

<DataTemplate x:Key="SearchBoxDataTemplate">
    <StackPanel Orientation="Vertical" HorizontalAlignment="Right" Margin="0, 0, 8, 0">
        <TextBlock HorizontalAlignment="Right" Foreground="Blue" 
            FontSize="18" Text="{Binding Name}" Padding="2" />
        <TextBlock HorizontalAlignment="Right" Foreground="Black" 
            FontSize="8" Text="{Binding Description}" Padding="2" />
    </StackPanel>
</DataTemplate>

Однако, как только элемент выбран, AutoCompleteBox заполняется именем типа объекта (возвращается службой WCF) ...

IdeasAndTesting_SL_01.ServiceReference1.ProductInfo

Вы заметите, что я переопределил метод ToString () объекта ProductInfo, поэтому я не уверен, почему это происходит или как его решить. Идеи?

Ответы [ 2 ]

2 голосов
/ 23 сентября 2009

Создайте частичный класс вашего ProductInfo, который имеет то же пространство имен, что и сгенерированный прокси-класс сервиса, переопределите внутри него ToString ().

2 голосов
/ 23 сентября 2009

Ваша ProductInfo и справочная информация по сервису могут фактически быть разными объектами.

Рассмотрите возможность установки свойства ValueMemberPath или ValueMemberBinding в AutoCompleteBox для свойства (например, DisplayText, которое возвращает то же имя + "-" + описание).

Свойство-член value всегда будет учитываться поверх ToString объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...