Silverlight WCF数据绑定相关表
我有一张带外键的桌子。我想将数据显示为相关表的描述,而不是Id。从实体服务中,我在数据模型上做了Silverlight WCF数据绑定相关表,silverlight,silverlight-4.0,silverlight-5.0,Silverlight,Silverlight 4.0,Silverlight 5.0,我有一张带外键的桌子。我想将数据显示为相关表的描述,而不是Id。从实体服务中,我在数据模型上做了.Include语句,以便返回。以下是我尝试过的,电台显示在手机中,但组合框中没有显示: <sdk:DataGridTemplateColumn CanUserReorder="False" CanUserResize="False" CanUserSort="False" Width="Auto" Header="Station"> <sdk:DataGridTempl
.Include
语句,以便返回。以下是我尝试过的,电台显示在手机中,但组合框中没有显示:
<sdk:DataGridTemplateColumn CanUserReorder="False" CanUserResize="False" CanUserSort="False" Width="Auto" Header="Station">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Station.Description}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Station}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
<OperationContract()>
Public Function LoadPersonnel(clientId As Integer) As List(Of Personnel)
Dim result As List(Of Personnel)
Try
result = db.Personnels.Include("Station").Where(Function(o) o.ClientId = clientId).ToList
Catch
result = Nothing
End Try
Return result
End Function
公共函数loadPerson(clientId为整数)作为列表(人员)
Dim结果作为列表(人员)
尝试
结果=数据库人员。包括(“站点”)。其中(功能(o)o.ClientId=ClientId)。ToList
抓住
结果=无
结束尝试
返回结果
端函数
还尝试:
<ComboBox ItemsSource="{Binding}" DisplayMemberPath="{Binding Station.Description}" SelectedItem="{Binding Station.Description}" SelectedValue="{Binding Station.StationId}" />
像这样做
<sdk:DataGrid AutoGenerateColumns="False" Height="100" HorizontalAlignment="Left" Margin="107,90,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="251" >
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn CanUserReorder="False" CanUserResize="False" CanUserSort="False" Width="Auto" Header="Station">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Station.Description}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Station}" DropDownOpened="ComboBox_DropDownOpened" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
由于Station不存在,除了作为另一个数据源上的背载数据,我制作了一个IEnumerable(Of Station)并从服务中填充它。现在他们充满了选择!我现在需要获取所选的值并将其应用于原始对象,然后通过服务将其保存回db。我会玩的,看看我能想出什么。我还需要弄清楚如何将selectedItem设置为正确的值。如果您对此有什么见解,我很想听听,否则我会一直插上…以获取所选值,var x=(您的itemssource对象)combobox.SelectedItem;你推荐哪项活动?我一直在关注这些事件,它们与Winforms和ASPX数据网格(或类似)非常不同。CellEditEnding看起来很有希望。我通常会在DataBound事件中这样做。BeginningEdit非常适合为我获取行数据项。我只需要从这里获取组合框并在这里设置selectedItem。已尝试:Dim cbStation As ComboBox=TryCast(dgStaff.Columns(2).GetCellContent(e.Row),ComboBox)-不起作用。我需要为它迭代可视化树吗?
private void ComboBox_DropDownOpened(object sender, EventArgs e)
{
var combo = (ComboBox)sender;
combo.ItemsSource = Station;
combo.DisplayMemberPath = "Description";
}