我们正在为基于 WCF Ria 服务的项目使用 MVVM Light Silverlight 项目。经过一些研究,我们决定将 DevExpress DataGrid 与 RiaInstantFeedbackDataSource 一起使用。一切都很好,直到我们想将网格的焦点行绑定到 ModelView 属性。这是我们的 XAML,
<UserControl x:Class="OurProject.Silverlight.Views.Personnel.List"
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:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" mc:Ignorable="d"
DataContext="{Binding Personnel, Source={StaticResource Locator}}"
d:DesignWidth="640" d:DesignHeight="480">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<dx:RiaInstantFeedbackDataSource x:Name="DataSource" QueryName="{Binding Path=QueryName}" KeyExpression="{Binding Path=KeyExpression}"
DomainContext="{Binding Path=Context}" />
<dxg:GridControl Name="grid" ItemsSource="{Binding ElementName=DataSource, Path=Data}" Grid.Row="0" AutoPopulateColumns="True" >
<dxg:GridControl.View>
<dxg:TableView x:Name="view" FocusedRow="{Binding Selected}" />
</dxg:GridControl.View>
</dxg:GridControl>
<Button Grid.Row="1" Height="30" VerticalAlignment="Bottom" Content="Edit" Command="{Binding Edit}" />
</Grid>
当我们调试这段代码(Edit 命令执行后的断点)时,我们意识到 FocusedRow 的类型是 object[]。我们尝试了 RowPropertyValueConverter,但找不到任何有关如何使用它的文档。我们如何将选定的行(或该行中的任何属性 [例如 Id 列])绑定到 ViewModel 的属性?
PS:我们检查了这个链接,它不适用于 RiaInstantDataSource。
提前致谢。