У меня есть datagrid, в котором есть один столбец со списком.
- источник элементов сетки данных будет привязан к данным из базы данных через RIA WCF
- источник элементов поля со списком, который находится внутри сетки данных, будет привязан к свойству ListFinancialAccountType, которое представляет собой набор типов финансовых счетов (также извлекаемых через RIA WCF).
Я могу показать список всех доступных имен типа учетной записи для поля со списком. Однако я не могу установить значение по умолчанию для поля со списком, которое должно соответствовать значению каждой строки в таблице данных.
Например: значение поля со списком расскажет нам, какой тип финансового счета (Актив, доход, ..). Однако его реальное значение в строке представляет собой целочисленный тип (FinancialAccountTypeId), но я хочу, чтобы оно отображалось как «Актив», «Доход», ... Поэтому мне нужно найти список типов финансовых счетов (который будет можно получить через RIA WCF). FinancialAccountType имеет свойства FinancialAccountTypeId и AccountTypeName.
Таким образом, в строках таблицы данных в поле со списком будет отображаться «Актив», «Доход», .... вместо 1,2, ....
Для моего финансового счета: свойства
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>