在wpf中创建两个ComboboxItems函数时,对象引用未设置为对象的实例
我这里没有什么主意了 问题是,我使用两个组合框,我想从两个组合框中获取值,以在wpf中显示DataGrid中的内容 我有一个从两个组合框中获取值的函数。这很有效在wpf中创建两个ComboboxItems函数时,对象引用未设置为对象的实例,wpf,combobox,nullreferenceexception,Wpf,Combobox,Nullreferenceexception,我这里没有什么主意了 问题是,我使用两个组合框,我想从两个组合框中获取值,以在wpf中显示DataGrid中的内容 我有一个从两个组合框中获取值的函数。这很有效 private void cboxYearChange(object sender, SelectionChangedEventArgs e) { ComboBoxItem typeItemYear = (ComboBoxItem)comboBox2.SelectedItem; string va
private void cboxYearChange(object sender, SelectionChangedEventArgs e)
{
ComboBoxItem typeItemYear = (ComboBoxItem)comboBox2.SelectedItem;
string valueYear = typeItemYear.Content.ToString();
ComboBoxItem typeItemMonth = (ComboBoxItem)comboBox1.SelectedItem;
string valueMonth = typeItemMonth.Content.ToString();
}
但是我想创建另一个函数来检查其他组合框上的更改:
private void cboxMonthChange(object sender, SelectionChangedEventArgs e)
{
ComboBoxItem typeItemYear = (ComboBoxItem)comboBox2.SelectedItem;
string valueYear = typeItemYear.Content.ToString();
ComboBoxItem typeItemMonth = (ComboBoxItem)comboBox1.SelectedItem;
string valueMonth = typeItemMonth.Content.ToString();
}
我可以构建,但当我运行此命令时,我得到的对象引用没有设置为ComboBoxItem typeItemYear=(ComboBoxItem)comboBox2.SelectedItem上对象错误的实例;cboxMonthChange函数中的行
我在这里遗漏了什么?SelectedItem在选择某些内容之前为空。除非它们同时更改(这是不可能的,因为这些事件是按顺序触发的),否则comboBox1.SelectedItem或comboBox2.SelectedItem上的类型转换将引发异常 检查SelectedItem是否设置为方法。 或者使用其他类型,如: ComboboxItem1=comboBox1.SelectedItem作为ComboxItem; if(item1!=null) { //做点什么 } 希望这有帮助:-)1)只要有可能,您不应该在代码中引用控件的名称。
例如,您可以知道SelectionChanged中更改了哪个组合框 通过将
发送方
强制转换为组合框
2) 但在这种简单的情况下,只需使用公共属性并将它们绑定到 您的组合框:无需代码即可完成所有操作
<ComboBox x:Name="YearSelectCB" SelectedItem="{Binding SelectedYear}">
<ComboBox x:Name="MonthSelectCB" SelectedItem="{Binding SelectedMonth}">
(您可以通过多种方式设置窗口的DataContext,例如在
窗口加载的事件处理程序(DataContext=this))很抱歉缺少代码格式。菜单在我的手机上不可见:-)后面的选项不起作用。检查SelectedItem是否设置了方法是什么意思?