Как установить значение по умолчанию, которое связано с другим значением для выпадающего списка в сетке данных - PullRequest
0 голосов
/ 17 августа 2010

У меня есть сетка данных, в которой есть один столбец списка.

- источник данных сетки данных будет привязан к данным из базы данных через RIA WCF

- источник элементов списка, которыйнаходится внутри сетки данных, будет привязана к свойству ListFinancialAccountType, которое является коллекцией типов финансовых счетов (также извлекаемых через RIA WCF).

Я могу показать список всех доступных имен типов учетных записей для комбинированного списка.Однако я не могу установить значение по умолчанию для выпадающего списка, которое должно соответствовать значению каждой строки в сетке данных

Например: значение выпадающего списка скажет нам, какой тип финансового счета(Актив, доход, ..).Тем не менее, его реальное значение в строке представляет собой целочисленный тип (FinancialAccountTypeId), но я хочу, чтобы он отображался как «Актив», «Доход», ... Поэтому мне нужно поискать в Списке типов финансовых счетов (который будетбыть извлечены через РИА 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>

1 Ответ

0 голосов
/ 08 сентября 2010

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

...