在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;
答案 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;
}