Как установить значение по умолчанию, которое привязано к другому значению для поля со списком в datagrid

У меня есть 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>

person Tai    schedule 17.08.2010    source источник


Ответы (1)


посмотрите на решение Кайла Макклеллана:
http://blogs.msdn.com/b/kylemc/archive/2010/06/18/combobox-sample-for-ria-services.aspx

person Alexander Bykin    schedule 07.09.2010