我有一个gridview,其中的列将其数据绑定到Datagrid.DataContext
中的Page_Loaded
:
private void Shema_Loaded(object sender, RoutedEventArgs e)
{
GridName.DataContext = AllPdiLines;
}
我想要一个网格,其中每一行中的一个单元格包含一个带有可选值的组合框,然后在选中时绑定到数据网格数据源。应该很容易,但是不能绑定组合框的itemscollection。
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>
因此,我为DataGrid设置了DataContext,并且两个第一列绑定得很好,但是如何在每行的ComboBox中为可选值设置数据源。
问候 的Øyvind
答案 0 :(得分:0)
什么是CountryDataSource?由于多种原因,您无法将DomainDataSource与Comboboxes一起使用。您可以使用comboboxextensions包并使用comboboxdatasource。如果将其绑定到网格定义中的数据源,它将起作用。
此处有更多详情 - http://blogs.msdn.com/b/kylemc/archive/2010/06/18/combobox-sample-for-ria-services.aspx