当ComboBox1具有值

时间:2015-08-12 20:52:12

标签: c# wpf

我正在使用WPF。我有一个填充ComboBox1的LINQ查询。然后,应该在我要填充ComboBox1的LINQ查询的where子句中使用从ComboBox2中选择的值。

是否有事件触发器,以便在ComboBox1中选择值时,ComboBox2将填充LINQ查询结果?我已经编写了LINQ查询,但不太确定如何使它在事件上运行。

这是我想在选择ComboBox1值后运行的内容

private void ComboBox2_Loaded(object sender, RoutedEventArgs e)
{
    string comboName = ComboBox1.Text;
    int recipId = RecipID(comboName);
    ComboBox2.ItemsSource = MainWindow.qryGiftList(recipId);
    ComboBox2.DisplayMemberPath = "cGift";
}

修改

private void ComboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (_comboSelection.cItem == "Gift")
    {
        string comboName = ComboBox1.Text;
        int recipId = RecipID(comboName);
        ComboBox2.ItemsSource = MainWindow.qryGiftList(recipId);
        ComboBox2.DisplayMemberPath = "cGift";
    }
}

我也试过而不是使用string ComboName = ComboBox1.Text;来使用string ComboName = (string)ComboBox1.SelectedItem,但这会导致调试:

  

未处理的类型' System.InvalidCastException'发生在myMemory.exe中    附加信息:无法转换类型' myMemory.Name'的对象输入' System.string'。

1 个答案:

答案 0 :(得分:1)

正确的事件是SelectionChanged。        <ComboBox x:Name="combobox1" SelectionChanged="comobox1_SelectionChanged"/>

您可以在此类事件中获取所选值          string value = (string)combobox1.SelectedItem;