首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将CollectionView.CurrentItem转换为DataRow?

将CollectionView.CurrentItem转换为DataRow?
EN

Stack Overflow用户
提问于 2014-01-06 06:32:08
回答 1查看 483关注 0票数 0

我正试图将MSDN在VB中的"如何在WPF中创建一个简单的数据输入表单?“视频转换为C#。我被困在20点11分了。

我首先创建一个类型化的DataSet和一个CollectionView:

代码语言:javascript
复制
private CustomerDataSet CustomerData = new CustomerDataSet();
private CustomerDataSetTableAdapters.CustomersTableAdapter taCust = new CustomerDataSetTableAdapters.CustomersTableAdapter();
private CustomerDataSetTableAdapters.TableAdapterManager taManager = new CustomerDataSetTableAdapters.TableAdapterManager();
private CollectionView View;

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    this.taCust.Fill(this.CustomerData.Customers);
    this.DataContext = CustomerData.Customers;

    this.View = (CollectionView)CollectionViewSource.GetDefaultView(this.CustomerData.Customers);
}

我用有线导航按钮很好。当我连接删除按钮的事件时,我的麻烦开始了。根据MSDN的CollectionView.CurrentItem文档,我应该能够将CurrentItem转换成另一个对象。我希望将CurrentItem转换为DataRow (或类型化DataRow),以便调用DataRow的Delete方法。

代码语言:javascript
复制
private void btnDelete_Click(object sender, RoutedEventArgs e)
{
    if (this.View.CurrentPosition != -1)
    {
            // This doesn't work, throws null exception:
            // DataRow row = this.View.CurrentItem as DataRow;
            // 
            // This doesn't work either, throws null exception: 
            // CustomerDataSet.CustomersRow row = this.View.CurrentItem as CustomerDataSet.CustomersRow;
            MessageBox.Show("row:" + row.ToString());
     }
}

我哪里出问题了?谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-06 07:11:38

像这样抽离这一排,

代码语言:javascript
复制
DataRow row = (this.View.CurrentItem as DataRowView).Row;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20944335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档