2017-04-25 61 views
2

所以我在这个论坛搜索,但找不到安泽...WPF ComboBox SelectionItemBox提示字符串

我绑定我的组合框到用户列表。但是当我想输入一个名字时,一些奇怪的东西正在出来。

XAML代码:

<ComboBox Name="UserLoginCmbBox" Width="100" IsEditable="True" SelectionChanged="UserLoginCmbBox_SelectionChanged"> 
      <ComboBox.ItemTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding Login}"/> 
       </DataTemplate> 
      </ComboBox.ItemTemplate> 
</ComboBox> 

代码代码背后:

var users = new List<User>{...} //initialization   
UserLoginCmbBox.ItemsSource = users; 

当我在框中键入我只串,我可以得到的是:

System.Data.Entity的。 DynamicProxies.User_FE59351B6479342209B496E7D3C3B877DDC51FE15279FFFEF899A5012F85FCBA

我发现这个ToString()方法返回的是什么,但是如果我想在另一个ComboBox中使用相同的列表来显示名称或其他内容,该怎么办?

如何修改SelectionItemBox?因为当我尝试使用SelectionItemBoxTemplate编写我自己的模板时,发生错误(SelectionItemBoxTemplate只有getter)。

回答

1

尝试设置DisplayMemberPath属性设置为“登陆”:

<ComboBox Name="UserLoginCmbBox" Width="100" IsEditable="True" SelectionChanged="UserLoginCmbBox_SelectionChanged" DisplayMemberPath="Login" /> 
+0

错误:不能同时设置的ItemTemplate和DisplayMemerPath – laguss

+0

取出的ItemTemplate按我的样品标记。按照原样复制它。 – mm8

+0

它的工作:)很多爱<3,并感谢:D – laguss