Silverlight 自动完成框不保留文本

Silverlight 自动完成框不保留文本,silverlight,web-services,data-binding,xaml,autocomplete,Silverlight,Web Services,Data Binding,Xaml,Autocomplete,我有一个Silverlight测试项目,我将返回一个列表 public class ProductInfo { public override string ToString() { return Name + " - " + Description; } public string Name { get; set; } public string Description { get; set; } } 它正在成功地将名称和说明返回到

我有一个Silverlight测试项目,我将返回一个列表

public class ProductInfo
{

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

    public string Name { get; set; }
    public string Description { get; set; }
}
它正在成功地将名称和说明返回到定义了以下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>

您会注意到我重写了ProductInfo对象的ToString()方法,所以我不确定为什么会这样做,也不知道如何解决它。想法?

您的产品信息和服务参考实际上可能是不同的对象

考虑将AutoCompleteBox上的或ValueMemberBinding属性设置为属性(例如DisplayText,它返回相同的名称+“-”+描述)


值成员属性在对象的ToString中始终受到尊重。

您的ProductInfo和服务引用实际上可能是不同的对象

考虑将AutoCompleteBox上的或ValueMemberBinding属性设置为属性(例如DisplayText,它返回相同的名称+“-”+描述)


值成员属性将始终在对象的ToString上得到尊重。

为ProductInfo创建一个与生成的服务代理类具有相同命名空间的分部类,在其中重写ToString()。

为ProductInfo创建一个与生成的服务代理类具有相同命名空间的分部类,重写其中的ToString()

IdeasAndTesting_SL_01.ServiceReference1.ProductInfo