C# 尝试将DataGrid VeiwSource.View设置为null时出现错误消息

C# 尝试将DataGrid VeiwSource.View设置为null时出现错误消息,c#,wpf,datagrid,C#,Wpf,Datagrid,我正在尝试设置绑定的datagrid,以便不选择任何内容 加载页面并创建contactsListBySchoolIDViewSource时,我可以将其View设置为空。 加载页面后,如果单击按钮,datagrid中没有选择任何内容,则应用程序运行正常。 如果我在选择了datagrid中的单元格后单击按钮,try..catch不会捕获错误,但我会收到一个消息框,其中说明: “索引超出数组的边界。” 如果我在messagebox上单击“确定”,则在datagrid中不会选择任何我想要的内容 “con

我正在尝试设置绑定的datagrid,以便不选择任何内容

加载页面并创建
contactsListBySchoolIDViewSource
时,我可以将其
View
设置为空。 加载页面后,如果单击按钮,datagrid中没有选择任何内容,则应用程序运行正常。 如果我在选择了datagrid中的单元格后单击按钮,
try..catch
不会捕获错误,但我会收到一个消息框,其中说明: “索引超出数组的边界。” 如果我在messagebox上单击“确定”,则在datagrid中不会选择任何我想要的内容

“contactsViewSource”没有给我任何问题

我使用的是VS2012、WPF、C#和.NRT4.5

我的问题是如何阻止messagebox显示

<Page.Resources >
    <!-- Bound to a "details view" -->
    <CollectionViewSource x:Key="contactsViewSource" Source="{Binding Contacts, Source={StaticResource mTAdminDataSet}}"/>

<!-- Bound to a datagrid -->
    <CollectionViewSource x:Key="contactsListBySchoolIDViewSource" Source="{Binding ContactsListBySchoolID, Source={StaticResource mTAdminDataSet}}"/>

</Page.Resources>


    private void Page_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {

    MTAdmin.MTAdminDataSetTableAdapters.ContactsListBySchoolIDTableAdapter mTAdminDataSetContactsListBySchoolIDTableAdapter = new MTAdmin.MTAdminDataSetTableAdapters.ContactsListBySchoolIDTableAdapter();

    mTAdminDataSetContactsListBySchoolIDTableAdapter.Fill(mTAdminDataSet.ContactsListBySchoolID, schoolId);
    contactsListBySchoolIDViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("contactsListBySchoolIDViewSource")));
    contactsListBySchoolIDViewSource.View.MoveCurrentTo(null);


    MTAdmin.MTAdminDataSetTableAdapters.ContactsListBySchoolIDTableAdapter mTAdminDataSetContactsListBySchoolIDTableAdapter = new MTAdmin.MTAdminDataSetTableAdapters.ContactsListBySchoolIDTableAdapter();
    mTAdminDataSetContactsListBySchoolIDTableAdapter.Fill(mTAdminDataSet.ContactsListBySchoolID, schoolId);
    contactsListBySchoolIDViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("contactsListBySchoolIDViewSource")));
    contactsListBySchoolIDViewSource.View.MoveCurrentTo(null);

    //other code.....

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

}

    private void contactsButton_Click(object sender, RoutedEventArgs e)
    {
        try
        {
    //bound to grid with details(textboxes)
            contactsViewSource.View.MoveCurrentTo(null);

    //bound to the datagrid

 // THIS IS THE LINE OF CODE THROWING THE ERROR 
            contactsListBySchoolIDViewSource.View.MoveCurrentTo(null);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

已加载私有无效页面(对象发送方,路由目标e)
{
尝试
{
MTAdmin.MTAdminDatasetAttableAdapters.ContactsListBySchoolTableAdapter MTAdminDatasetContactsListBySchoolTableAdapter=新建MTAdmin.MTAdminDatasetAttableAdapters.ContactsListBySchoolTableAdapter();
MTAdminDataSetContactsListBySchoolTableAdapter.Fill(mTAdminDataSet.ContactsListBySchoolID);
contactsListBySchoolIDViewSource=((System.Windows.Data.CollectionViewSource)(this.FindResource(“contactsListBySchoolIDViewSource”)));
contactsListBySchoolIDViewSource.View.MoveCurrentTo(空);
MTAdmin.MTAdminDatasetAttableAdapters.ContactsListBySchoolTableAdapter MTAdminDatasetContactsListBySchoolTableAdapter=新建MTAdmin.MTAdminDatasetAttableAdapters.ContactsListBySchoolTableAdapter();
MTAdminDataSetContactsListBySchoolTableAdapter.Fill(mTAdminDataSet.ContactsListBySchoolID);
contactsListBySchoolIDViewSource=((System.Windows.Data.CollectionViewSource)(this.FindResource(“contactsListBySchoolIDViewSource”)));
contactsListBySchoolIDViewSource.View.MoveCurrentTo(空);
//其他代码。。。。。
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
}
私有无效联系人按钮点击(对象发送者,路由目标e)
{
尝试
{
//绑定到包含详细信息的网格(文本框)
contactsViewSource.View.MoveCurrentTo(空);
//绑定到数据网格
//这是引发错误的代码行
contactsListBySchoolIDViewSource.View.MoveCurrentTo(空);
}
捕获(例外情况除外)
{
Show(例如ToString());
}
}

谢谢

天哪,这到底是什么<代码>MTAdmin.MTAdminDatasetAttableAdapters.ContactsListBySchoolTableAdapter MTAdminDatasetContactsListBySchoolTableAdapter=新建MTAdmin.MTAdminDatasetAttableAdapters.ContactsListBySchoolTableAdapter()-伙计,请使用
var
。这不是java。另外,
CollectionViewSource
用于XAML,而不是过程代码。如果您得到:“索引在数组的边界之外。”那么您可能会尝试查看网格的行集合。请向我们显示引发错误的确切行。引发错误的代码行是:
contactsListBySchoolViewSource.View.MoveCurrentTo(null)
MTAdmin.MTAdminDataSetAttableAdapters.ContactsListBySchoolIDTableAdapter mTAdminDataSetContactsListBySchoolIDTableAdapter
,因为
var
不能在方法外部使用。代码可能不是最好的,但我正在学习。