【发布时间】:2012-09-26 17:26:47
【问题描述】:
我是 wpf 的新手;我正在使用可编辑的组合框(用于搜索目的)。
当 ComboBox 中的文本发生更改时,搜索结果将显示在数据网格下方。 When any row from the datagrid is selected its values are displayed in textboxes for editing.
当我在组合框中写一些东西时,相关的行会显示在数据网格中,但是当我单击选择一行时,应用程序会抛出一个nullreference exception。
当 dataGrid 刷新逻辑在按钮单击之后时,我的应用程序可以正常工作。
dataGrid的“SelectionChange”事件代码为:
private void CategoryRowSelected(object sender, System.Windows.Controls.SelectedCellsChangedEventArgs e)
{
ClearForm();
if(CategoryDataGrid.SelectedItem!=null)
{
categoryMember = CategoryDataGrid.SelectedItem as CategoryTbl; // value assigned to the object
// if (categoryMember != null)
CategoryName.Text = categoryMember.CategoryName; //Exception thrown on this statement
CategoryDescription.Text = categoryMember.CategoryDescription;
}
}
ComboBox的textChange事件代码为:
private void RefreshDataGrid(object sender, System.Windows.Controls.TextChangedEventArgs e)
{
CategoryDataGrid.SelectedIndex = -1;
//CategoryDataGrid.ItemsSource = RefreshQuery;
CategoryDataGrid.ItemsSource= Admin.RefreshCategoryDataGrid(NameCombo.Text);
}
【问题讨论】:
-
你确定你的演员表不返回 null 吗?
-
如果你已经使用
(CategoryTbl)CategoryDataGrid.SelectedItem(CategoryTbl)CategoryDataGrid.SelectedItem,你为什么还要使用as -
@ConradFrix 也许 OP 更喜欢获得
NullReferenceException而不是InvalidCastException;) -
@ReedCopsey 我认为你对 OP 给予了太多的信任。
-
谢谢...我遇到了问题...类型未使用“as”运算符进行转换..
标签: c# wpf datagrid event-handling