Как получить данные строки из Silverlight DataGrid? - PullRequest
1 голос
/ 27 мая 2011

Как в Silverlight получить данные строки из DataGrid, заполненной данными?

Я получил это далеко (в методе, который получает нажатие кнопки на строке (:

DataGridRow item = (DataGridRow)dg.SelectedItem;

Теперь, как я могу получить отдельные компоненты элемента, который, я думаю, является выбранной строкой?

Помоги мне здесь. Как вы связываете наблюдаемую коллекцию с сеткой?

Как вы используете систему приведения при касте к объекту?

Когда я считывал данные в сетку, я использовал этот класс:

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 ]

2 голосов
/ 27 мая 2011
DataGridRow item = (DataGridRow)dg.SelectedItem;
int index1 = ((Data)item).index_1;

Это даст вам значение первого индекса.

0 голосов
/ 27 мая 2011

Если вы привязали ObservableCollection<Foo> к вашей сетке, выбранный вами предмет может быть просто брошен в ваш объект - (Foo)dg.SelectedItem

РЕДАКТИРОВАТЬ - ОБНОВИТЬ ОТВЕТ НА ОБНОВЛЕННЫЙ ВОПРОС

Простой ответ: если вы не используете MVVM (что, как я полагаю, по вашему сообщению, вы не используете), в коде позади создайте коллекцию (предпочтительно ObservableCollection) данных и задайте для свойства collectionds 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...