Silverlight DataGrid内多个数据源绑定的实现办法

时间:2021-08-22 09:24:05

我们在Silverlight开发过程中,很常见的情形是已经做好绑定的DataGrid内需要绑定不同数据源的数据,比如一个来自不同数据源的ComboBox。

下面举个简单的例子:

 

 Silverlight DataGrid内多个数据源绑定的实现办法

我们最终要显示的结果如上图所示,其中姓名,年龄来自 MainData 数据源,籍贯来自 BindingJG 数据源。

 

先简单把这两个数据源建好:

 

MainData:

 

BindingJG :

 

 

现在要把这两个数据源同时绑定到MainPage.xaml 里的 dataGrid上,

要先添加对籍贯数据类的引用:

<UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"  x:Class="SilverlightBinding.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:comJG="clr-namespace:SilverlightBinding"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

 

 然后就可以在dataGrid里引用籍贯数据,以下是dataGrid的完整代码:

 

其中的关键代码:

                            <ComboBox x:Name="JGCombo" DataContext="{Binding Source={StaticResource iJG}}">
                                <ItemsControl ItemsSource="{Binding JiGuan}">
                                    <ItemsControl.ItemTemplate>
                                        <DataTemplate>
                                            <TextBlock Text="{Binding}"/>
                                        </DataTemplate>
                                    </ItemsControl.ItemTemplate>
                                </ItemsControl>
                            </ComboBox>

 再把MainData数据赋值给dataGrid就可以了

 

完整代码下载: Silverlight 4