Установка источника данных для комбинированных списков в клетках в Silverlight DataGrid - PullRequest
0 голосов
/ 29 августа 2009

У меня есть вид сетки, где столбцы связывают свои данные с Datagrid.DataContext в Page_Loaded:

private void Shema_Loaded(object sender, RoutedEventArgs e)
{
    GridName.DataContext = AllPdiLines;
}

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

xaml выглядит так:

<data:DataGrid x:Name="GridName" 
ItemsSource="{Binding}"                 
AutoGenerateColumns="False"
SelectionMode="Single"
ScrollViewer.VerticalScrollBarVisibility="Auto" 
ScrollViewer.HorizontalScrollBarVisibility="Auto" 
Margin="4">
<data:DataGrid.Columns>
    <data:DataGridTemplateColumn Header="First name">
        <data:DataGridTemplateColumn.CellEditingTemplate>
            <DataTemplate>
                <TextBox Text="{Binding FirstName,Mode=TwoWay}"/>
            </DataTemplate>
        </data:DataGridTemplateColumn.CellEditingTemplate>
    </data:DataGridTemplateColumn>
    <data:DataGridTemplateColumn Header="LastName" CanUserSort="True">
        <data:DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBox Text="{Binding LastName,Mode=TwoWay}"/>
            </DataTemplate>
        </data:DataGridTemplateColumn.CellTemplate>
    </data:DataGridTemplateColumn>
    <data:DataGridTemplateColumn Header="Country">
        <data:DataGridTemplateColumn.CellEditingTemplate>
            <DataTemplate>
                <ComboBox x:Name="cbxQ" IsEnabled="True"
                    SelectedItem="{Binding Country,Mode=TwoWay}" 
                    ItemsSource="{Binding Countries, Source={StaticResource CountryDataSource}}" 
                    ItemTemplate="{StaticResource CountryListTemplate}"/>
            </DataTemplate>
        </data:DataGridTemplateColumn.CellEditingTemplate>
    </data:DataGridTemplateColumn>                              
</data:DataGrid.Columns>

Итак, я установил DataContext для DataGrid, и два первых столбца хорошо связываются, но как мне установить источник данных для выбираемых значений в ComboBox в каждой строке.

С уважением Øyvind

1 Ответ

0 голосов
/ 06 февраля 2012

Что такое CountryDataSource? Вы не можете использовать DomainDataSource с Comboboxes по нескольким причинам. Вы можете использовать пакет comboboxextensions и использовать источник comboboxdatasource. Если вы свяжете это с вашим источником данных в определении сетки, это будет работать.

Подробнее здесь - http://blogs.msdn.com/b/kylemc/archive/2010/06/18/combobox-sample-for-ria-services.aspx

...