2011-06-10 183 views
3
<DataGridTemplateColumn Header="IsAdmin"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <CheckBox Name="IsAdminCheckBox" IsChecked="{Binding Path=IsAdmin}" Click="IsAdmin_Click" CommandParameter="{Binding Path=Id}"/> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

這是我的代碼,我在我的程序中的數據網格。在CS文件的click事件中,我想看看他們是否檢查它時,它會更改爲checked或unchecked,以便我可以在數據庫中處理,將用戶從admin更改爲admin,反之亦然。然而,只是調用IsAdminCheckBox不起作用,因爲它找不到它,並且調用datagridName.IsAdminCheckBox不起作用。有誰知道如何訪問複選框的狀態?從datagrid獲取複選框的值?

回答

2

您不能以這種方式訪問​​複選框,因爲可能存在多個複選框,該名稱僅在DataTemplate之內有效。

在事件處理程序中,sender參數應該是CheckBox,您只需投射它,然後就可以訪問IsChecked屬性。另一種選擇是處理CheckedUncheked事件。

但我認爲一個更好的方法是在綁定類中處理這個問題,而不是在GUI的代碼隱藏,問題分離以及所有這些方面。

+0

你可以舉個例子:-) – 2012-11-26 17:23:53