Проблема привязки XamDataGrid - PullRequest
1 голос
/ 29 мая 2010

Я хочу связать ячейку XamDataGrid с помощью элемента управления ComboBox через свойство коллекции (CurrentEntity.INVTransactions) (BatchList), но оно не работает. Я использую шаблон mvvm. В моем коде «BatchId» и «BatchList» являются свойствами коллекции CurrentEntity.INVTransactions.

Не могли бы вы сказать мне, почему comboBox xamDataGrid не отображает BatchList?

пример кода:

<UserControl x:Class="PDCL.ERP.Modules.Inventory.Views.RequisitionList.RequisitionInfoUserControl"
            ...>    
        <GroupBox Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Header="Details" VerticalAlignment="Top" Margin="5,0,5,0">
        <Grid>
            <igDP:XamDataGrid Margin="2"  DataSource="{Binding CurrentEntity.INVTransactions}" x:Name="requisitionDeailsGrid" InitializeRecord="requisitionDeailsGrid_InitializeRecord">                   
                <igDP:XamDataGrid.FieldLayoutSettings>
                    <igDP:FieldLayoutSettings HighlightAlternateRecords="True" 
                                      AutoGenerateFields="False" 
                                      AllowAddNew="True" 
                                      AddNewRecordLocation="OnBottom" 
                                      AutoFitMode="Always"
                                      SupportDataErrorInfo="RecordsAndCells"
                                      DataErrorDisplayMode="ErrorIcon"
                                      />
                </igDP:XamDataGrid.FieldLayoutSettings>
                <igDP:XamDataGrid.FieldLayouts>
                    <igDP:FieldLayout>
                        <igDP:FieldLayout.Fields>
                            <igDP:Field Name="Remarks" Label="Remarks" Width="Auto">
                                <igDP:Field.Settings>
                                    <igDP:FieldSettings AllowEdit="True" AllowResize="True"/>
                                </igDP:Field.Settings>
                            </igDP:Field>                               
                            <igDP:Field Name="BatchId" Label="Batch" Width="Auto">
                                <igDP:Field.Settings>                                        
                                    <igDP:FieldSettings EditorType="{x:Type igEditors:XamComboEditor}">
                                        <igDP:FieldSettings.EditorStyle>
                                            <Style TargetType="{x:Type igEditors:XamComboEditor}">                                                    
                                                <Setter Property="ItemsSource" Value="{Binding INVTransactions.BatchList, RelativeSource = {RelativeSource FindAncestor, AncestorType={x:Type igDP:XamDataGrid}, AncestorLevel=1}}" />                                                    
                                                <Setter Property="DisplayMemberPath" Value="BatchName" />
                                                <Setter Property="ValuePath" Value="BatchId" />
                                            </Style>
                                        </igDP:FieldSettings.EditorStyle>

                                    </igDP:FieldSettings>
                                </igDP:Field.Settings>
                            </igDP:Field>
                            <igDP:Field Name="Qty" Label="Qty Supplied" Width="Auto">
                                <igDP:Field.Settings>
                                    <igDP:FieldSettings AllowEdit="True" AllowResize="True"/>
                                </igDP:Field.Settings>
                            </igDP:Field>
                        </igDP:FieldLayout.Fields>
                    </igDP:FieldLayout>
                </igDP:XamDataGrid.FieldLayouts>
            </igDP:XamDataGrid>
            </Grid>
    </GroupBox>
    </UserControl>

В окне вывода отображается сообщение об ошибке «Ошибка пути BindingExpression: свойство« INVTransactions »не найдено для объекта» «XamDataGrid» (Имя = «RequisitionDeailsGrid») ». (Name = 'RequisitionDeailsGrid'); целевым элементом является 'XamComboEditor' (Name = ''); целевым свойством является "ItemsSource" (тип "IEnumerable") "

1 Ответ

2 голосов
/ 05 июля 2011

Вы связываете элемент с относительным источником Xamdatagrid, XamDataGrid не имеет свойства INVTransactions, я думаю, что вы на самом деле ищете источник данных, который уже привязан к свойству INVTranactions, поэтому попробуйте изменить привязку на.

{Binding DataSource.BatchList, RelativeSource = {RelativeSource FindAncestor, AncestorType={x:Type igDP:XamDataGrid}, AncestorLevel=1}} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...