2009-11-16 117 views
2

我使用MVVM模式的項目控制和我有以下代碼:如何添加命令綁定到不具有命令綁定屬性

<DataTemplate x:Key="ActivityEditTemplate"> 
     <ItemsControl ItemsSource="{Binding Path=ActivityList}"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate>      
        <CheckBox Margin="2,0,2,0" Content="{Binding ActivityDescription}" IsChecked="{Binding IsSelected}" Command="vm:PatternViewModel.ActivityCommand" CommandParameter="{Binding ActivityTitle}"> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
    </DataTemplate> 

ItemsControl的內複選框需要以允許多選。我有一個路由命令,可以很容易地在複選框上實現它,但是我只希望命令在項目控件被摺疊時執行。數據模板是WPF數據網格中CellEditingTemplate的靜態資源。我希望代碼仍然採用MVVM模式。我認爲鼠標離開事件調用命令沒有運氣。提前致謝。

+0

您的代碼缺失。 – Heinzi 2009-11-16 14:25:57

+0

我又添加了代碼。謝謝 – Noushad 2009-11-17 06:50:31

回答

0

我不是WPF專家,我可能會錯誤地讀出您的問題。

然而,我剛讀此:

有一個在與由所述視圖模型露出的命令對象的視圖的控制相關聯的另一種方式。只有一些控件可以通過Command屬性實際綁定到命令,特別是從System.Windows.Controls.Primitives.ButtonBase或System.Windows.Controls.MenuItem派生的控件。如果要將命令附加到某個其他控件,或者當您想要對按鈕的單擊事件以外的事件調用命令,則可以使用Expression Blend交互觸發器和System.Windows.Interactivity.InvokeCommandAction類。

Source: blog.magnusmontin.net

你可能想看看事件觸發器。