WPF AutoCompleteBox多个字段

时间:2013-10-22 20:39:31

标签: c# wpf

我有一个WPF自动完成框,它填充了从数据库查询的Organization_Names列表。现在,当用户从autocompletebox下拉列表中选择组织名称时,我想获取Organization_ID。我可以再次查询数据库以获取基于所选Organization_Name的ID,但我认为有更好的方法。如何在下拉列表中添加一个不可见的列,以便它不会显示,但我可以得到它的值?我是WPF的新手。任何帮助将不胜感激。

谢谢, 亚历

1 个答案:

答案 0 :(得分:1)

您可以将自动填充框绑定到对象。

class MyClass
{
    public int Organization_ID{ get; set; }
    public string Organization_Names{ get; set; }
}

<controls:AutoCompleteBox x:Name="autoCompleteBox1"    
      SelectionChanged="autoCompleteBox1_SelectionChanged"      
      FilterMode="Contains"              
      IsTextCompletionEnabled="True">
    <controls:AutoCompleteBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Organization_Names}" />
        </DataTemplate>
    </controls:AutoCompleteBox.ItemTemplate>
</controls:AutoCompleteBox>

private void autoCompleteBox1_SelectionChanged(object sender, RoutedEventArgs e)
{
   MessageBox.Show(((MyClass)autoCompleteBox1.SelectedItem).Organization_ID);
}