2012-07-01 107 views
0

我使用Galasoft的EventToCommand作爲下面的代碼,用於在用戶插入價格和數量後更新Line Total單元格。 請在我插入價格,數量並按回車鍵時,找到合適的方式進行「總計」更改。我試過InputBindings,但不幸的是沒有工作。點擊時按照其他單元格更新Datagrid單元格輸入

這裏是我查看Datagrid的XAML:

<DataGrid IsReadOnly="False" x:Name="_StockCardItems" ItemsSource="{Binding InvoiceDetailsList, Mode=TwoWay}" SelectedItem="{Binding SelectedItem}" CanUserDeleteRows="True" CanUserAddRows="False"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="CurrentCellChanged"> 
      <gs:EventToCommand PassEventArgsToCommand="True" Command="{Binding CurrentCellChangedCommand}"/> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 

    <DataGrid.InputBindings> 
     <KeyBinding Key="Enter" Command="{Binding CurrentCellChangedCommand}"/> 
    </DataGrid.InputBindings> 

    <DataGrid.Columns> 

     <DataGridTemplateColumn Header="Désignation" Width="400" IsReadOnly="True"> 
      <DataGridTemplateColumn.CellTemplate > 
       <DataTemplate> 
        <TextBlock Margin="10,2" HorizontalAlignment="Left" Text="{Binding Path=Items.Designation}" /> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 

     <DataGridTemplateColumn Header="Quantité" Width="150" IsReadOnly="False"> 
      <DataGridTemplateColumn.CellTemplate > 
       <DataTemplate> 
        <TextBox Margin="10,0" HorizontalAlignment="Center" GotKeyboardFocus="TextBox_GotKeyboardFocus" GotMouseCapture="TextBox_GotMouseCapture" IsReadOnly="False" Text="{Binding Path=Quantity, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, Converter={StaticResource RemoveDoubleZero}}" /> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 

     <DataGridTemplateColumn Header="PU" Width="150" > 
      <DataGridTemplateColumn.CellTemplate > 
       <DataTemplate> 
        <TextBox Margin="10,0" HorizontalAlignment="Center" IsReadOnly="False" GotKeyboardFocus="TextBox_GotKeyboardFocus" GotMouseCapture="TextBox_GotMouseCapture" Text="{Binding Path=UnitePrice, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, Converter={StaticResource RemoveDoubleZero}}" /> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 

     <DataGridTemplateColumn Header="Montant HT" Width="150" > 
      <DataGridTemplateColumn.CellTemplate > 
       <DataTemplate> 
        <TextBlock Margin="10,2" HorizontalAlignment="Right" Text="{Binding Path=Line_Total,Mode=TwoWay,ValidatesOnExceptions=True,ValidatesOnDataErrors=True, StringFormat=n, ConverterCulture=fr-FR}" /> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 

    </DataGrid.Columns> 
</DataGrid> 

這裏是視圖模型的CurrentCellChangedCommand EXCUTE方法(SelectedItem是EF實體):提前

private void RecalculateLineTotal() 
{ 
    if (SelectedItem != null) 
    SelectedItem.Line_Total = SelectedItem.Quantity * SelectedItem.UnitePrice; 
} 

感謝

+0

我不知道發生了什麼,但現在它開始正常工作了! – HichemSeeSharp

回答

0

某些時候開始正常工作。我認爲這是一些額外的阻止這些關鍵的運作。

相關問題