【问题标题】:Datagrid cell click opens new window with data from DBDatagrid 单元格单击打开新窗口,其中包含来自 DB 的数据
【发布时间】:2014-05-27 19:13:34
【问题描述】:

我有一个数据网格,当我单击一个单元格时,我想打开一个新窗口,其中包含来自我的数据库的数据,该数据链接到我单击的单元格的 ID。

开始。我似乎无法在单击单元格时打开此窗口。请参阅下面的代码。

<UserControl>
    <Style>
        <EventSetter Event="DataGridCell.MouseLeftButtonDown"
                 Handler="CellClicked" />
    </Style>
</UserControl>
<DataGrid Name="grdNewTickets" BorderThickness="1" IsReadOnly="True">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Onderwerp" Width="Auto" 
                            Binding="{Binding Onderwerp}">       
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

C#代码:

private void CellClicked(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
    var win = new Ticket();
    win.Show();
}

一些帮助?

更新: 当我添加断点时,不会触发 CellClicked。我是不是做错了什么。

【问题讨论】:

    标签: c# wpf xaml datagrid wpfdatagrid


    【解决方案1】:

    您的 XAML 需要像这样更正:

    <DataGrid Name="grdNewTickets" BorderThickness="1"  MouseLeftButtonDown="CellClicked" IsReadOnly="True">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Onderwerp" Width="Auto" 
                                Binding="{Binding Onderwerp}">       
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>
    

    在后面的代码中,

    private void CellClicked(object sender, MouseButtonEventArgs e)
            {
               Ticket childWin= new Ticket();
                childWin.Show();
            }
    

    【讨论】:

    • 我试过了,不行。未触发“CellClicked”。
    • @user2287508 您的 XAML 错误!你想要 datagrid 或 usercontrol 的 cellclicked 事件吗?
    • @user2287508 如果对您有帮助,您能否将其标记为答案
    • 如果我单击没有任何单元格的数据网格,它也会触发此事件
    【解决方案2】:

    尝试将其设置为“Background=Transparent”。

    突然为我工作了

    MouseLeftButtonDown is not getting fired

    【讨论】:

      猜你喜欢
      • 2018-01-23
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多