2012-03-12 59 views
0

我正在使用silverlight4 mvvmlight。 我想從Datagrid中觸發命令事件。 我對DataGrid的代碼是:如何在DataGrid中觸發命令事件?

<sdk:DataGrid ItemsSource="{Binding ScheduleInProcessSource.View, Mode= TwoWay}" SelectedItem="{Binding CurrentActivity, Mode=TwoWay}" AutoGenerateColumns="False"> 
      <sdk:DataGrid.Columns> 
       <sdk:DataGridTextColumn Header="Start" Binding="{Binding Path=Start}"/> 

       <sdk:DataGridTextColumn Header="Subject" Binding="{Binding Path=Subject}"/> 

       <sdk:DataGridTextColumn Header="StoreName" Binding="{Binding Path=Outlet.OutletName}"/> 
       <sdk:DataGridTextColumn Header="AddressLine1" Binding="{Binding Path=Outlet.Address.AddressLine1}"/> 
       <sdk:DataGridTextColumn Header="AddressLine2" Binding="{Binding Path=Outlet.Address.AddressLine2}"/> 
       <sdk:DataGridTextColumn Header="OwnerName" Binding="{Binding Path=Outlet.OwnerName}"/> 
       <sdk:DataGridTextColumn Header="ContactName" Binding="{Binding Path=Contact.FirstName}"/> 
       <sdk:DataGridTextColumn Header="PhoneNo" Binding="{Binding Path=Outlet.Phone}"/> 
       <sdk:DataGridTextColumn Header="MobileNo" Binding="{Binding Path=Outlet.Mobile}"/> 

       <sdk:DataGridTemplateColumn IsReadOnly="False"> 
        <sdk:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <HyperlinkButton Content="Edit" Click="btnEdit_Click"/> 
         </DataTemplate> 
        </sdk:DataGridTemplateColumn.CellTemplate> 
       </sdk:DataGridTemplateColumn> 
       <sdk:DataGridTemplateColumn IsReadOnly="False"> 
        <sdk:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <HyperlinkButton Content="Resume" Command="{Binding ResumeAuditing}"/> 
         </DataTemplate> 
        </sdk:DataGridTemplateColumn.CellTemplate> 
       </sdk:DataGridTemplateColumn> 
       <sdk:DataGridTemplateColumn IsReadOnly="False"> 
        <sdk:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <HyperlinkButton Content="Delete" Command="{Binding DeleteCommand}"/> 
         </DataTemplate> 
        </sdk:DataGridTemplateColumn.CellTemplate> 
       </sdk:DataGridTemplateColumn> 
      </sdk:DataGrid.Columns> 
     </sdk:DataGrid> 

但命令不起作用。我怎麼能克服這種情況? 請幫助我..

+0

你想從按鈕內火DataGrid的事件? – Java 2012-03-12 05:12:48

+0

是的我想發射超鏈接按鈕的命令事件我設置命令= {綁定...}但它不起作用。你有任何解決方案?請幫助我解決這個問題。 – R76 2012-03-12 05:15:26

+0

通過[http://www.vbforums.com/showthread.php?t=608519]可以幫助你。 – Java 2012-03-12 05:19:40

回答

3

我找到了解決辦法

<sdk:DataGrid ItemsSource="{Binding ScheduleInProcessSource.View, Mode= TwoWay}" SelectedItem="{Binding CurrentActivity, Mode=TwoWay}" AutoGenerateColumns="False" x:Name="dgInProcess"> 
      <sdk:DataGrid.Columns> 
       <sdk:DataGridTextColumn Header="Start" Binding="{Binding Path=Start}"/> 

       <sdk:DataGridTextColumn Header="Subject" Binding="{Binding Path=Subject}"/> 

       <sdk:DataGridTextColumn Header="StoreName" Binding="{Binding Path=Outlet.OutletName}"/> 
       <sdk:DataGridTextColumn Header="AddressLine1" Binding="{Binding Path=Outlet.Address.AddressLine1}"/> 
       <sdk:DataGridTextColumn Header="AddressLine2" Binding="{Binding Path=Outlet.Address.AddressLine2}"/> 
       <sdk:DataGridTextColumn Header="OwnerName" Binding="{Binding Path=Outlet.OwnerName}"/> 
       <sdk:DataGridTextColumn Header="ContactName" Binding="{Binding Path=Contact.FirstName}"/> 
       <sdk:DataGridTextColumn Header="PhoneNo" Binding="{Binding Path=Outlet.Phone}"/> 
       <sdk:DataGridTextColumn Header="MobileNo" Binding="{Binding Path=Outlet.Mobile}"/> 

       <sdk:DataGridTemplateColumn IsReadOnly="False"> 
        <sdk:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <HyperlinkButton Content="Edit" Click="btnEdit_Click"/> 
         </DataTemplate> 
        </sdk:DataGridTemplateColumn.CellTemplate> 
       </sdk:DataGridTemplateColumn> 
       <sdk:DataGridTemplateColumn IsReadOnly="False"> 
        <sdk:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <HyperlinkButton Content="Resume"> 
           <i:Interaction.Triggers> 
            <i:EventTrigger EventName="Click"> 
             <cmd:EventToCommand Command="{Binding Source={StaticResource VMLocator}, Path=ScheduleViewModel.ResumeAuditing}" PassEventArgsToCommand="True"/> 
            </i:EventTrigger> 
           </i:Interaction.Triggers> 
          </HyperlinkButton> 
         </DataTemplate> 
        </sdk:DataGridTemplateColumn.CellTemplate> 
       </sdk:DataGridTemplateColumn> 
       <sdk:DataGridTemplateColumn IsReadOnly="False"> 
        <sdk:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <HyperlinkButton Content="Delete"> 
           <i:Interaction.Triggers> 
            <i:EventTrigger EventName="Click"> 
             <cmd:EventToCommand Command="{Binding Source={StaticResource VMLocator}, Path=ScheduleViewModel.DeleteCommand}" PassEventArgsToCommand="True"/> 
            </i:EventTrigger> 
           </i:Interaction.Triggers> 


          </HyperlinkButton> 
         </DataTemplate> 
        </sdk:DataGridTemplateColumn.CellTemplate> 
       </sdk:DataGridTemplateColumn> 
      </sdk:DataGrid.Columns> 
     </sdk:DataGrid> 

這將工作..

+0

好................................ – Java 2012-03-12 07:55:01