我有一个数据网格,它有一个组合框列。
-datagrid的itemsource将通过RIA WCF绑定到数据库中的数据
-数据网格内的组合框的 itemsource 将绑定到 ListFinancialAccountType 属性,该属性是财务帐户类型的集合(也通过 RIA WCF 检索)。
我可以显示组合框的所有可用帐户类型名称的列表。但是,我无法为组合框设置默认值,该默认值应与数据网格中每一行的值相匹配
例如:combobox的值会告诉我们金融账户是什么类型的(Asset, income,..)。但是,它在行中的实际值是一个整数类型(FinancialAccountTypeId),但我希望它显示为“资产”、“收入”、......所以我需要查看金融账户类型列表(这将通过 RIA WCF 检索)。FinancialAccountType 具有 FinancialAccountTypeId 和 AccountTypeName 属性。
因此,在数据网格的行上,组合框将显示“资产”、“收入”、...而不是 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>