2016-05-18 6 views
0

Xaml:Не удалось найти ряд из Datagrid МОФ

<DataGrid 
    Name="dgIssuedItemsBatchWise" 
    AutoGenerateColumns="False" 
    CanUserAddRows="False" 
    Loaded="dgIssuedItemsBatchWise_Loaded" 
    LoadingRow="dgIssuedItemsBatchWise_LoadingRow" 
    LoadingRowDetails="dgIssuedItemsBatchWise_LoadingRowDetails" 
    > 
    <DataGrid.CellStyle> 
     <Style TargetType="DataGridCell"> 
     </Style> 
    </DataGrid.CellStyle> 
    <DataGrid.RowHeaderTemplate> 
     <DataTemplate> 
      <Expander 
       Expanded="Expander_Expanded" 
       Collapsed="Expander_Collapsed"> 
      </Expander> 
     </DataTemplate> 
    </DataGrid.RowHeaderTemplate> 
    <DataGrid.Columns> 
     <DataGridCheckBoxColumn 
      Width="100" 
      Binding="{Binding IsIndentIssue,UpdateSourceTrigger=PropertyChanged}" 
      > 
      <DataGridCheckBoxColumn.Header > 
       <TextBlock 
        FontWeight="Bold" 
        Text="Is Selected" 
        /> 
      </DataGridCheckBoxColumn.Header> 
     </DataGridCheckBoxColumn> 
     <!--<DataGridCheckBoxColumn Width="100" Header="Is Selected" Binding="{Binding IsIndentIssue}" />--> 
     <DataGridTextColumn 
      Width="150" 
      IsReadOnly="True" 
      Header="Item Name" 
      FontWeight="Bold" 
      Binding="{Binding ItemName}" 
      /> 
     <DataGridTextColumn 
      Width="100" 
      IsReadOnly="True" 
      Header="Item Code" 
      FontWeight="Bold" 
      Binding="{Binding ItemCode}" 
      /> 
     <DataGridTextColumn 
      Width="100" 
      IsReadOnly="True" 
      x:Name="reqQuantity" 
      Header="Required Quantity" 
      FontWeight="Bold" 
      Binding="{Binding Quantity}" /> 
     <DataGridTextColumn 
      Width="100" 
      IsReadOnly="True" 
      x:Name="issQty" 
      Header="Issued Quantity" 
      FontWeight="Bold" 
      Binding="{Binding IssueQuantity}" 
      /> 
    </DataGrid.Columns> 
    <DataGrid.RowDetailsTemplate> 
     <DataTemplate> 
      <Grid> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto" ></RowDefinition> 
        <RowDefinition Height="Auto"></RowDefinition> 
       </Grid.RowDefinitions> 
       <DataGrid Grid.Row="0" 
        Height="Auto" 
        Padding="10,10,10,10" 
        Width="1320" 
        Grid.ColumnSpan="5" 
        ItemsSource="{Binding BatchWiseItems,UpdateSourceTrigger=PropertyChanged}" 
        x:Name="dgIssuedItemsBatchDetails" 
        AutoGenerateColumns="False" 
        HorizontalAlignment="Stretch" 
        VerticalAlignment="Center" 
        CanUserAddRows="False" 
        > 
        <DataGrid.Columns> 
         <!--<DataGridTextColumn Width="440" > 
          <DataGridTextColumn.Header> 
           <CheckBox 
            HorizontalAlignment="Center" 
            VerticalAlignment="Center" /> 
          </DataGridTextColumn.Header> 
         </DataGridTextColumn>--> 

         <DataGridCheckBoxColumn 
          Width="100" 
          Binding="{Binding IsItemIssued,UpdateSourceTrigger=PropertyChanged}"> 
          <DataGridCheckBoxColumn.Header > 
           <TextBlock 
            FontWeight="Bold" 
            Text="Is Issued" 
            /> 
          </DataGridCheckBoxColumn.Header> 
         </DataGridCheckBoxColumn> 

         <!--<DataGridCheckBoxColumn Width="100" Header="Is Issued" Binding="{Binding IsIndentIssue}" />--> 

         <DataGridTextColumn 
          Binding="{Binding BatchNo}" 
          Width="440" > 
          <DataGridTextColumn.Header> 
           <TextBlock 
            FontWeight="Bold" 
            Text="Batch No" 
            /> 
          </DataGridTextColumn.Header> 
         </DataGridTextColumn> 
         <DataGridTextColumn 
          Binding="{Binding Quantity}" 
          Width="440" > 
          <DataGridTextColumn.Header> 
           <TextBlock 
            FontWeight="Bold" 
            Text="Quantity" 
            /> 
          </DataGridTextColumn.Header> 
         </DataGridTextColumn> 
        </DataGrid.Columns> 
       </DataGrid> 

       <!--<TextBox Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" ></TextBox>--> 
      </Grid> 
     </DataTemplate> 
    </DataGrid.RowDetailsTemplate> 
</DataGrid> 

мне нужно изменить цвет строки на основе некоторых расчетов. В GridView мы имеем RowDataBound события, но в DataGrid кто-то предложить мне использовать DataGrid_LoadingRow event.I использовать это событие как

private void dgIssuedItemsBatchWise_LoadingRow(object sender, DataGridRowEventArgs e) 
{ 
    DataRowView item = e.Row.Item as DataRowView ; 
    if (item != null) 
    { 
    } 
} 

, но каждый раз, когда я получаю деталь как null.Someone предложить мне, как решить эту проблему или изменить цвет строки в WPF DataGrid.

+0

вы имеете в виду, что 'DaatGrid' помещается внутри' ListView' ? если это так, тогда вы должны поместить 'ListView' xaml ind свой' DataTemplate'. Поскольку для других не ясно, что DataGrid находится в 'DataTemplate'' ListView'. В additiiob существуют свойства, такие как 'AlternatingRowBackground =" Brown "и' AlternationCount = "2" '. – StepUp

+0

нет нет списка. Я использую gridview сам .. – Rahul

+0

просто 'DataGrid'? – StepUp

ответ

2

попробовать

private void dgIssuedItemsBatchWise_LoadingRow(object sender, 
DataGridRowEventArgs e) 
{ 
    DataRowView item = e.Row.DataContext as DataRowView ; 
    if (item != null) 
    { 

    } 
} 

Изменение

DataRowView item = e.Row.DataContext as DataRowView ; 

Вместо

DataRowView item = e.Row.Item as DataRowView ; 

Надежда это поможет вам

Смежные вопросы