我有一个数据网格,它有一个组合框列。
- datagrid的itemsource将通过RIA WCF绑定到数据库中的数据
- 数据网格内的组合框的项目源将绑定到ListFinancialAccountType属性,该属性是财务帐户类型的集合(也通过RIA WCF检索)。
我可以显示组合框的所有可用帐户类型名称列表。但是,我无法设置组合框的默认值,它应该与datagrid中每行的值匹配
例如:组合框的价值将告诉我们什么类型的金融账户(资产,收入,......)。但是,它在行中的实际值是一个整数类型(FinancialAccountTypeId),但我希望它显示为“资产”,“收入”,......所以我需要查看财务帐户类型列表(这将是通过RIA WCF检索)。 FinancialAccountType具有FinancialAccountTypeId和AccountTypeName属性。
所以在datagrid的行上,组合框将显示“Asset”,“Income”,....而不是1,2,....
对于我的FinancialAccount:属性
AccountDescription
AccountNumber
FinancialAccountTypeId example: 1,2,...
FinancialAccountType --->navigation property
对于我的FinancialAccountType:属性
AccountTypeName example: "asset", ...
FinancialAccountTypeId example: 1, 2...
FinancialAccounts ---> navigation property
在我的代码背后,我还填写了一个财务帐户类型列表 我想我必须在这里加载问题。任何输入将不胜感激
这是我的代码背后
public partial class Financial_Accounts : Page
{
public Financial_Accounts()
{
InitializeComponent();
}
// Executes when the user navigates to this page.
protected override void OnNavigatedTo(NavigationEventArgs e)
{
FinancialAccountContext financial_ctx = new FinancialAccountContext();
financial_ctx.Load(financial_ctx.GetFinancialAccountsQuery());
financialAccountDataGrid.ItemsSource = financial_ctx.FinancialAccounts;
}
}
public class Financial_Account_Types : ObservableCollection<FinancialAccountType>
{
public EntitySet<FinancialAccountType> ListFinancialAccountType
{
get
{
FinancialAccountContext financial_ctx = new FinancialAccountContext();
financial_ctx.Load(financial_ctx.GetFinancialAccountTypesQuery());
return financial_ctx.FinancialAccountTypes;
}
}
}
这是我的XAML
<Grid.Resources>
<financial:Financial_Account_Types x:Key="FinancialAccountTypes"/>
</Grid.Resources>
<sdk:DataGrid AutoGenerateColumns="False" Height="159" HorizontalAlignment="Left" Name="financialAccountDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="280">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn x:Name="accountDescriptionColumn" Binding="{Binding Path=AccountDescription}" Header="Account Name" Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="accountNumberColumn" Binding="{Binding Path=AccountNumber}" Header="Account Number" Width="SizeToHeader" />
<sdk:DataGridTemplateColumn x:Name="financialAccountTypeIdColumn" Header="Account Type" Width="SizeToHeader">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding ListFinancialAccountType, Source={StaticResource FinancialAccountTypes},Mode=TwoWay}"
SelectedValue="{Binding FinancialAccountTypeId, Mode=TwoWay}"
DisplayMemberPath="AccountTypeName"
SelectedValuePath="FinancialAccountTypeId"
/>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
答案 0 :(得分:0)
看看Kyle McClellan解决方案:
http://blogs.msdn.com/b/kylemc/archive/2010/06/18/combobox-sample-for-ria-services.aspx