Привязка результатов структуры сущностей ADO.NET к сетке данных Silverlight - PullRequest
1 голос
/ 27 августа 2009

У меня есть модель данных на моем веб-сайте ASP.NET, и я пытаюсь получить записи tbl_company и связать их с сеткой данных в silverlight - довольно просто.

Я настроил свою базу данных таким образом, чтобы у tbl_company был внешний ключ (company_scope_id), связанный с tbl_company_scope. Из tbl_company_scope я в основном хочу показать столбец «область действия». Мой код в Silverlight ниже:

    <data:DataGrid x:Name="dgCompanies" Grid.Row="0" AutoGenerateColumns="False">
        <data:DataGrid.Columns>
            <data:DataGridTemplateColumn>
                <data:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding name, Mode=TwoWay}"></TextBlock>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>

            </data:DataGridTemplateColumn>
            <data:DataGridTemplateColumn>

                <data:DataGridTemplateColumn.CellTemplate >
                    <DataTemplate>
                        <TextBlock Text="{Binding CompanyScope.scope}"></TextBlock>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>

            </data:DataGridTemplateColumn>
        </data:DataGrid.Columns>

    </data:DataGrid>

(все имена и т. Д. И т. П. Верны, но в основном "scope" не будет отображаться при привязке к источнику данных DataSrids)

Кто-нибудь знает, как вы собираетесь отображать столбец области действия в таблице данных?

Приветствия

Ответы [ 2 ]

1 голос
/ 29 августа 2009

Я только что проверил ваш код, и вы правы, он должен работать так, как вы говорите, спасибо за ответ, думаю, мне нужно пойти и узнать больше об ADO.NET EF.

Ура снова.

0 голосов
/ 28 августа 2009

Я провел быструю проверку «точечной» привязки в DataGrid, и она работала, как и ожидалось. Я в основном взял ваш Xaml и связал некоторые классы данных POCO. Вот код:

<data:DataGrid x:Name="dgCompanies" Grid.Row="0" AutoGenerateColumns="False">
        <data:DataGrid.Columns>
            <data:DataGridTemplateColumn>
                <data:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name, Mode=TwoWay}"></TextBlock>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>

            </data:DataGridTemplateColumn>
            <data:DataGridTemplateColumn>

                <data:DataGridTemplateColumn.CellTemplate >
                    <DataTemplate>
                        <TextBlock Text="{Binding CompanyScope.Scope}"></TextBlock>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>

            </data:DataGridTemplateColumn>
        </data:DataGrid.Columns>
    </data:DataGrid>

Классы данных:

public class CompanyScope
    {
        public string Scope { get; set; }
    }

    public class Company
    {
        public string Name { get; set; }
        public CompanyScope CompanyScope { get; set; }
    }

И, наконец, код за конструктором:

ObservableCollection<Company> companies = new ObservableCollection<Company>
            {
                new Company { Name="Company One", CompanyScope=new CompanyScope { Scope="Some Scope" }},
                new Company { Name="Company Two", CompanyScope=new CompanyScope { Scope="Some Other Scope" }},
                new Company { Name="Company Three", CompanyScope=new CompanyScope { Scope="More Scope" }}
            };

            dgCompanies.ItemsSource = companies;

Я получил ожидаемый результат в 2 столбцах таблицы: один показывает название компании, а другой - ее область. Вы уверены, что ваши объекты Scope также загружены - возможно, вы загрузили компании, но не их области.

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