我将向您展示代码的确切代码和输出......
这是我的linq .dbml文件
这是我的组合框cbx_contact代码:
<ComboBox Height="22.669" Margin="107.769,43.75,424.266,0" Name="cbx_contact" VerticalAlignment="Top" IsTabStop="True" SelectedValuePath="ContactID" IsSynchronizedWithCurrentItem="True" IsEditable="True" IsTextSearchEnabled="True">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Path=ContactName}"/>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
这是.cs文件:
public Contacts()
{
InitializeComponent();
DataClasses1DataContext db = new DataClasses1DataContext();
cbx_contact.ItemsSource = db.Contacts;
cbx_contact.SelectedIndex = 0;
}
这是组合框的输出视图:
这里在组合框的下拉列表中我得到了所有的值但是当我选择任何值时文本没有改变它给出了Contact_Manager.Contact ....
我不知道我在这里失踪了什么...... 我之前也在使用了这样的组合框,但是在这个时候它正在创建probs ...... 提前感谢您的帮助...
答案 0 :(得分:1)
应用this answer中的概念:
<ComboBox Height="22.669" Margin="107.769,43.75,424.266,0" Name="cbx_contact" VerticalAlignment="Top" IsTabStop="True" SelectedValuePath="ContactID" IsSynchronizedWithCurrentItem="True" IsEditable="True" IsTextSearchEnabled="True"
TextSearch.TextPath=ContactName
>
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Path=ContactName}"/>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>