2016-09-03 21 views
1

我使用下面的代碼來實現使用MVVM三個態複選框:觸發「選中/未選中」不以三種狀態下進行射擊複選框

<CheckBox IsChecked="{Binding 
       Path=IsValueChecked, 
       Mode=TwoWay, 
       UpdateSourceTrigger=Explicit}" 
      Margin="3,10,0,0" 
      IsThreeState="True"> 
    <i:Interaction.Triggers> 
    <i:EventTrigger EventName="Checked"> 
     <i:InvokeCommandAction Command="{Binding Path=CheckCommand, 
         RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/> 
    </i:EventTrigger> 

    <i:EventTrigger EventName="Unchecked"> 
     <i:InvokeCommandAction Command="{Binding Path=CheckCommand, 
         RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/> 
    </i:EventTrigger> 
    </i:Interaction.Triggers> 
</CheckBox> 

而且在視圖模型,Nullable<bool>類型的須予公佈財產「IsValueChecked」是創建。問題在於點擊複選框不會觸發事件「選中」和「未選中」。 我錯過了什麼,請建議。

+0

Mostlikely您的命令綁定不能得到解決。 – Funk

+0

在綁定不起作用後,總是一個好主意來查看輸出窗口。 –

回答

0

在上面的Funk的註釋中展開,它看起來像你試圖綁定到DataGrid級別的DataContext,但你的綁定實際上會嘗試綁定到DataGrid本身的屬性。鑑於DataGrid沒有CheckCommand屬性,這將失敗。

嘗試改變的綁定路徑:

{Binding Path=DataContext.CheckCommand, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}

+0

非常感謝它現在的工作。 –

+0

@EnaJain然後標記爲答案,和/或upvote :) – Noctis

相關問題