2012-05-24 112 views
0

我有一個DataGrid,它有一些文本列和一個帶複選框的模板列。當用戶點擊該行的任何地方時,我需要使該複選框切換。什麼是最好的方式來做到這一點?在行鼠標上點擊複選框點擊

現在我切換所選項目更改和單元格鼠標左鍵單擊事件的複選框。但是這有兩個問題。

第一個問題是DataGrid剛剛數據綁定的情況。第一行被選中。但是當我點擊一個單元格時,DataRowCell.MouseLeftButtonDown事件不會因不明原因而被引發。所以複選框不會被切換。可能的解決方案是在數據綁定後取消選擇第一行。

第二個問題是,當用戶直接點擊另一行的複選框時,該複選框會切換兩次。這會導致複選框被切換兩次,這意味着選中的值不會更改。

那麼實施該要求的最佳方式是什麼?

回答

0

您是否嘗試將複選框的checked屬性綁定到行isselected屬性?您沒有指定默認情況下,選中的值始終是關閉的,除非您點擊該值,否則您可以嘗試使用自定義IValueConverter切換值。

+0

我需要讓這個複選框在行被取消選中時被選中,所以這個解決方案不適合我。 –

0

Set CheckBox.IsEnabled = false它阻止了它被用戶切換。將DataGrid設置爲只讀,其中未聚焦的第一行。