Событие RowEditEnding получает нулевые значения

хорошо, так что в C# .NET 4.5 и используя DataGrid

У меня есть сетка данных, привязанная к ADO.Net DataEntity. Теперь, если я выделю существующую строку в Datagrid и нажму кнопку, которая выполняет следующий код: IList rows = DataGrid.SelectedItems; я могу выполнить код и увидеть, как IList заполняется правильными значениями.

моя сетка данных связана в XAML как ItemsSource="{Binding}", и каждый столбец в сетке данных привязан к столбцу в сущности, например: Binding="{Binding Path=InventoryName, Mode=TwoWay}"

и в коде позади я установил его с помощью запроса LINQ к структуре сущности следующим образом:

var fillList = (from g in MyDataEntities.Table1
            where g.OnLIst == true
            orderby g.InventoryName
            select g);
DataGrid.ItemsSource = fillList.ToList(); 

Мне нужно сделать двоякое действие: в событии RowEditEnding заполнить IList значениями в строке. После его заполнения мне нужно получить доступ к отдельным записям в IList.

Благодаря тестированию и пошаговому выполнению кода я думаю, что моя проблема заключается в том, что когда я ввожу пустую строку, она не обновляет сущность при запуске события RowEditEnding. Я так думаю, потому что, когда я прохожу код и расширяю IList, все значения в нем равны нулю. Должен ли я что-то сделать, чтобы обновить объект, прежде чем заполнять IList?

После его заполнения, как я могу получить доступ к отдельным значениям? когда я пытаюсь заполнить переменную с помощью оператора foreach, все это показывает значение как: Namespace.TableName


person Joe K    schedule 28.08.2013    source источник


Ответы (1)


Попробуйте это, это может помочь в вашем вопросе.

List<Table1> TestCollection = new List<Table1>();

public void BindData()
{
     TestCollection = MyDataEntities.Table1.Where(x=>x.OnLIst == true).ToList();
     DataGrid.ItemsSource = TestCollection;
}

затем вы можете получить доступ к своим данным по одному, выбрав в Datagrid.

private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
     Table1 NewTable = TestCollection[DataGrid.SelectedIndex];
}
person Harshana Narangoda    schedule 08.04.2014