【问题标题】:How to bind a MouseDoubleClick-Event to a DataGridTemplateColumn如何将 MouseDoubleClick-Event 绑定到 DataGridTemplateColumn
【发布时间】:2012-08-14 10:56:08
【问题描述】:

您好,我想对我的 DataGridTemplateColumn 使用 MouseDoubleClick 事件,用于 H.Column 下的 Function-和 Processinterface-Row。

但是DataGridTemplateColumn 没有MouseDoubleClick-Event。 谁能帮忙!

这是我的代码:

   <DataGridTemplateColumn x:Name="" Header="H." Width="50">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <DataTemplate.Triggers>
                                    <DataTrigger Binding="{Binding Path=ObjectType}" Value="E">
                                        <Setter Property="Visibility" Value="Hidden" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Path=ObjectType}" Value="Function">
                                        <Setter Property="Visibility" Value="Visible" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Path=ObjectType}" Value= "Processinterface">
                                        <Setter Property="Visibility" Value="Visible" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Path=ObjectType}" Value="AND">
                                        <Setter Property="Visibility" Value="Hidden" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Path=ObjectType}" Value="OR">
                                        <Setter Property="Visibility" Value="Hidden" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Path=ObjectType}" Value="XOR">
                                        <Setter Property="Visibility" Value="Hidden" />
                                    </DataTrigger>
                                </DataTemplate.Triggers>
                                <Button Name="btnTable" Visibility="Hidden" Height="20" Width="25" Click="Button_Table_Click">
                                    <Image Height="16" Source="" Stretch="Fill" Width="16"/>
                                </Button>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>

【问题讨论】:

    标签: wpf datagrid wpf-controls wpfdatagrid


    【解决方案1】:

    然后在文件后面添加代码

    private void dgAcctSearch_MouseDoubleClick(object sender, MouseButtonEventArgs e) { //add your logic here }

    【讨论】:

      【解决方案2】:
      <DataGrid MouseDoubleClick="dataGridLog_MouseDoubleClick" ItemsSource="{Binding}" RowDetailsVisibilityMode="VisibleWhenSelected">
              <DataGrid.Columns>
                  <DataGridTemplateColumn x:Name="dateColumn" Header="Date" Width="80" CanUserReorder="True" CanUserSort="False">
                      <DataGridTemplateColumn.CellTemplate>
                          <DataTemplate>
                              <TextBlock x:Name="dateColumnTextBlock" Text="{Binding Path=DateSent, StringFormat={}{0:dd/MM/yyyy}}" Width="80" />
                              <DataTemplate.Triggers>
                                  <DataTrigger Binding="{Binding Path=DateSent, StringFormat={}{0:dd/MM/yyyy}, Converter={x:Reference Name=DateConverter}, ConverterParameter=>3}" Value="True">
                                      <Setter TargetName="dateColumnTextBlock" Property="Background" Value="Red" />
                                  </DataTrigger>
                              </DataTemplate.Triggers>
                          </DataTemplate>
                      </DataGridTemplateColumn.CellTemplate>
                  </DataGridTemplateColumn>
      
                  <DataGridTemplateColumn x:Name="priorityColumn" Header="Priority" Width="80" CanUserReorder="True" CanUserSort="True">
                      <DataGridTemplateColumn.CellTemplate>
                          <DataTemplate>
                              <TextBlock x:Name="priorityColumnTextBlock" Text="{Binding Path=Priority}" Width="80" />
                              <DataTemplate.Triggers>
                                  <DataTrigger Binding="{Binding Path=Priority}" Value="Urgent">
                                      <Setter TargetName="priorityColumnTextBlock" Property="FontWeight" Value="Bold" />
                                  </DataTrigger>
                              </DataTemplate.Triggers>
                          </DataTemplate>
                      </DataGridTemplateColumn.CellTemplate>
                  </DataGridTemplateColumn>
      
                  <DataGridTextColumn x:Name="titleColumn" Binding="{Binding Path=Fault}" Header="Title" Width="270" CanUserReorder="True" CanUserSort="True" />
              </DataGrid.Columns>
          </DataGrid>
      

      这本质上是我的 daragrid。我已经展示了这个来证明它确实有MouseDoubleClick。此外,还展示了如何在模板上使用触发器。

      【讨论】:

        【解决方案3】:

        这样写

        <my:DataGrid 
                    AutoGenerateColumns="False" 
                    Margin="22,263,0,0" 
                    Name="dgAcctSearch"  
                    xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" 
                    IsReadOnly="True" 
                    CanUserResizeRows="False" 
                    CanUserSortColumns="True" 
                    SelectionMode="Extended" 
                    SelectionUnit="Cell" 
                    HorizontalAlignment="Left" 
                    Width="783" 
                    Height="331" 
                    VerticalAlignment="Top" 
                    MouseDoubleClick="dgAcctSearch_MouseDoubleClick" 
                    CanUserAddRows="False" 
                    CanUserDeleteRows="False"  
                    CanUserReorderColumns="False" 
                    CanUserResizeColumns="True" 
                    AllowDrop="False"
                    Background="WhiteSmoke"
                    GridLinesVisibility="All"
                    />
        

        【讨论】:

          猜你喜欢
          • 2011-08-15
          • 2011-04-06
          • 1970-01-01
          • 2014-05-13
          • 2011-02-06
          • 1970-01-01
          • 2010-10-10
          • 2013-07-02
          • 2017-01-16
          相关资源
          最近更新 更多