2010-05-29 4 views
2

컬렉션의 (CurrentEntity.INVTransactions) 속성 (BatchList)을 통해 ComboBox 컨트롤을 사용하여 XamDataGrid의 셀을 바인딩하려고하지만 작동하지 않습니다. mvvm pattern을 사용하고 있습니다. "BatchId"및 "BatchList"코드는 CurrentEntity.INVTransactions 컬렉션의 속성입니다.XamDataGrid 바인딩 문제

xamDataGrid의 comboBox에 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') 'BindingExpression : 대상 항목은 'ItemsSource'(유형 'IEnumerable')입니다.

답변

2

당신은 대상을 'XamComboEditor'(Name = '')로 지정해야합니다. 항목을 Xamdatagrid의 상대 소스에 바인딩하는 중입니다. XamDataGrid에 INVTransactions 속성이 없습니다. 실제로 dat asource는 INVTranactions 속성에 이미 바인딩되어 있으므로 바인딩을 변경해보십시오.

{Binding DataSource.BatchList, RelativeSource = {RelativeSource FindAncestor, AncestorType={x:Type igDP:XamDataGrid}, AncestorLevel=1}} 
+0

밥 vale, 나는 prob를 해결했지만 대답을 업데이 트하는 것을 잊지. 어쨌든 주셔서 감사합니다. –