如何从Silverlight DataGrid获取行数据?

时间:2011-05-27 14:40:46

标签: silverlight-4.0 datagrid

在Silverlight中,如何从一个充满数据的DataGrid获取行数据?

我已经走到了这一步(在一个按钮上点击一行的方法(:

DataGridRow item = (DataGridRow)dg.SelectedItem;

现在,如何获取项目的各个组件,我猜是选定的行?

在这里帮助我。如何将observablecollection绑定到网格?

当你施放物体时如何使用演员系统?

当我将数据读入网格时,我使用了这个类:

public class Data
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    public bool Available { get; set; }
    public int index_1 { get; set; }
    public int index_2 { get; set; }
    public int index_3 { get; set; }
    public int index_4 { get; set; }
    public int index_5 { get; set; }
    public int index_6 { get; set; }
    public int index_7 { get; set; }
    public int index_8 { get; set; }
    public int index_9 { get; set; }
    public int index_10 { get; set; }
    public int index_11 { get; set; }
    public int index_12 { get; set; }
    public int index_13 { get; set; }
    public int index_14 { get; set; }
    public int index_15 { get; set; }
}

所以当我回读时,我是如何投票的

这不起作用:

Data _mydata = new Data();  
YValue = (_mydata.index_1)dg.SelectedItem;

这不起作用:

YValue = (index_1)dg.SelectedItem;

这不起作用:

YValue = (Data().index_1)dg.SelectedItem;

2 个答案:

答案 0 :(得分:2)

DataGridRow item = (DataGridRow)dg.SelectedItem;
int index1 = ((Data)item).index_1;

这将为您提供第一个索引的值。

答案 1 :(得分:0)

如果您已将ObservableCollection<Foo>绑定到网格,则可以将所选项目投射到对象中 - (Foo)dg.SelectedItem

编辑 - 更新回答更新的问题

简单的答案是,如果你没有使用MVVM(我假设你的帖子没有),在后面的代码中创建一个Data的集合(最好是ObservableCollection)并将gridids itemsource属性设置为你的集合

public ObservableCollection<Data> MyCollection{get;set;}

void SetGridItemsSource()
{
// populate your collection here, then use the below line to associate it with your
// grids itemssource      
MyGrid.ItemsSource = MyCollection;

}

public void GetSelectedItem()
{
   //Simply cast the selected item to your type
   Data selectedItem = (Data)MyGrid.SelectedItem;
}