2012-09-20 53 views
1

我有以下的DataGrid如何通過在DataGrid中綁定的實體按鈕的CommandParameter

<DataGrid> 
<DataGrid.Columns> 
<DataGridTextColumn Header="Registro" Binding="{Binding NumeroRegistro}" /> 
<DataGridTextColumn Header="Nome" Binding="{Binding Nome}" Width="*" /> 
<DataGridTextColumn Header="Login" Binding="{Binding Login}" Width="200" /> 
<DataGridTemplateColumn Width="30" > 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <Button Name="btnEditarFisioterapeuta" CommandParameter="{Binding Id}" Click="btnEditarFisioterapeuta_Click"> 
       <Rectangle> 
        <Rectangle.Fill> 
         <VisualBrush Visual="{StaticResource appbar_page_edit}" /> 
        </Rectangle.Fill> 
       </Rectangle> 
      </Button> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

而且,在後面的代碼我填充數據網格狀的物品這

dgFisioterapeuta.ItemsSource = listOfEntities; 

沒什麼特別的。請注意,我在Button中綁定實體的Id,以便在後面的代碼中可以獲得此Id並編輯實體。我想知道,如果整個DataGrid都綁定到一個實體列表,爲什麼不通過CommandParameter整個實體?

有沒有辦法做到這一點?

換句話說,我想

<Button Name="btnEditarFisioterapeuta" CommandParameter="{Binding Id}" > 

行更改爲這樣的事情。

<Button Name="btnEditarFisioterapeuta" CommandParameter="{Binding The_binding_that_represents_the_entity_of_this_row}" > 

回答

1

是的,你可以做到這一點,這是很簡單的:

<Button Name="btnEditarFisioterapeuta" CommandParameter="{Binding}"> 

(請注意,當你寫{Binding Id}這對{Binding Path=Id}簡寫,因此要獲得整個實體您只需排除的路徑。)

+0

是的,謝謝 – Ewerton

相關問題