我们在Silverlight开发过程中,很常见的情形是已经做好绑定的DataGrid内需要绑定不同数据源的数据,比如一个来自不同数据源的ComboBox。
下面举个简单的例子:
我们最终要显示的结果如上图所示,其中姓名,年龄来自 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