2010-07-28 91 views
1

我有一个使用2个独立数据库的Silverlight应用程序。我有一种情况,在一个数据库中有一个Id列,而在另一个数据库中有查找表。显然,我不能强制这个作为外键,实体框架不会让我为2个数据库建立单一的实体数据模型,所以我不能在模型中定义这种关系。在Silverlight DataGrid列中显示相关但非外键的数据

当我显示从数据库1中的标识列,我想从数据库显示字段2.

理想我想定义这种关系,并使用一个绑定路径和(不具有我的模型知道我的ViewModel)。可以像组合框一样绑定的列也是好的,例如,

<data:DataGridTextColumn 
    Header="Project" 
    Binding="{Binding Path=ProjectId}" 
    ItemsSource="{Binding Path=DataSource.Projects, Source={StaticResource ViewModelProxy}}" 
    DisplayMemberPath="ProjectName" 
/> 

任何帮助,或批评我的方法,将不胜感激。

回答

1

那么我的第一个想法是,你可以创建一个自定义valueConvertor?

绑定到外键值,并将所需的属性名称作为转换器参数,然后在转换器中进行查找。

+0

我在想,我将不得不走上创建自定义控件的路径,或者是那种效果。这是你指的是什么? http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter%28VS.95%29.aspx – 2010-07-28 15:48:09

+0

是的,它的工作原理!谢谢你。在加载查找之前,我遇到了运行转换函数的问题(由于RIA服务的异步性质)。我设法通过提高Id列的属性更改事件来解决此问题。 – 2010-07-30 05:24:52