Silverlight: пустая сетка данных - PullRequest
2 голосов
/ 10 октября 2010

Я пытаюсь заполнить DataGrid анонимным типом, сгенерированным запросом LINQ. Когда я помещаю результаты запроса в список, он выглядит нормально. Однако когда я помещаю результаты запроса в сетку данных, генерируется правильное количество строк, но ячейки пусты.

Silverlight screen cap showing the error

(Сетка данных слева, со списком справа.)

Назначение источника данных:

testListBox.ItemsSource = debtPerUser.ItemsSource = ExpenseViewModel.getDebtData(username);

XAML:

<sdk:DataGrid Height="222" HorizontalAlignment="Left" Margin="31,89,0,0" Name="debtPerUser" VerticalAlignment="Top" Width="516" AutoGenerateColumns="True" />
<ListBox Height="222" HorizontalAlignment="Left" Margin="567,89,0,0" Name="testListBox" VerticalAlignment="Top" Width="173" />

Что я мог здесь делать не так?

getDebtData:

    internal static IEnumerable getDebtData(string username)
    {
        IEnumerable<String> users = getUsersInvolving(username);

        var debt = from user in users
                   select new {
                     User = user,
                     Net = owedBetween(username, user) - owedBetween(user, username)
                   };

        return debt.Where(d => d.Net != 0);
    }

Обновление : работает, когда я не использую анонимный тип запроса. Возможно в этом проблема?

Ответы [ 2 ]

2 голосов
/ 10 октября 2010

Да, анонимные типы предназначены для использования в методе, в котором они объявлены. Разоблачение их извне может привести к негативным последствиям. Я бы использовал в этом случае строго типизированное перечислимое.

0 голосов
/ 10 октября 2010

Не зная точно, какой тип коллекции возвращает метод ExpenseViewModel.getDebtData, если он использует LINQ, вам может повезти, попробовав ExpenseViewModel.getDebtData(username).ToList()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...