我正在使用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'。
答案 0 :(得分:1)
正确的事件是SelectionChanged。
<ComboBox x:Name="combobox1" SelectionChanged="comobox1_SelectionChanged"/>
您可以在此类事件中获取所选值
string value = (string)combobox1.SelectedItem
;